Copy Hex dan Re upload
Banyak orang berpikir praktis dalam menjalan kan usaha, terkhusus jualan controller yang design dan code nya sudah final. Salah satu cara nya adalah cara picik dengan mengabil hex mikrokontroller kemudian re upload ke chip baru.
Dengan cara seperti ini maka plagiat produk akan menjual produk dengan harga yang jauh lebih murah dari pada pemilik asli dari produk itu sendiri. Perilaku ini banyak di minati di Indonesia. Biasa nya pelaku otak seperti ini memiliki kriteria sebagai berikut:
- Selalu mencari untung sebesar-besar nya, karena TUHAN nya uang, walau berpenampilan agamis dan religius
- Tidak segan mengkopi program mikrokontroller dan menjual nya dengan harga jauh lebih murah.
- Cari jasa plagian PCB dengan Harga murah
- Cari kode gratis
Orang-orang seperti ini biasa nya tidak memiliki background teknik di bidang ini. hanya copy, perbanyak dan jual. Nah tentu berbeda dengan orang-orang yang membuat produk dari nol, try error kemudian uji sampai produk nya jadi di buat.
Nah seandai nya produk mu di perlakukan seperti ini? Apakah yang akan kamu pikirikan?
Mencegah Hex dengan Chip ID
Membuat Produk dengan ESP32 merupakan pilihan yang tepat dari beberapa sisi. Salah satu nya adalah chip ID. Chip id pada ESP32 adalah unik. tidak sama antar chip satu dengan chip yang lain nya. Dengan memanfaatkan chip id ini. kita bisa memproteksi kode yang akan kita buat. Bagaimana kah cara nya. yuk kita coba dengan code sederhana di bawah ini,
Get id chip
unsigned long cur_time, old_time; void setup() { // put your setup code here, to run once: Serial.begin(115200); delay(500); while(!get_id("2CE7E0AB6223")){ Serial.println("id salah"); delay(1000); } Serial.println("Serial id benar"); } void loop() { // put your main code here, to run repeatedly: cur_time = millis(); if(cur_time - old_time >= 5000){ while(!get_id("2CE7E0AB6223")){ Serial.println("id salah"); delay(1000); } old_time = cur_time; } //disini program utama; } bool get_id(String _id){ bool _check; String id, buf_id; uint64_t chipid; char ssid[13]; chipid=ESP.getEfuseMac();//The chip ID is essentially its MAC address(length: 6 bytes). uint16_t chip = (uint16_t)(chipid >> 32); snprintf(ssid, 13, "%04X%08X", chip, (uint32_t)chipid); for ( int i=0; i < 12; i++){ buf_id += String(ssid[i]); } id = buf_id; buf_id=""; Serial.println(id); if(id == _id){ _check = true; }else{ _check = false; } return _check; }
Pada code di atas. Di bagian setup, id esp32 akan di check sekali. jika salah maka akan di perangkat di while terus menerus. Jadi program tidak akan pernah sampai ke bagian utama program ( void loop).
Ketika di buka di serial monitor, akan tampil sebagai berikut.
Di bagian loop juga akan di check 5 detik sekali apakah id chip sama dengan id yang tertera di kode.? hal di gunakan untuk mempersulit seseorang merubah file hex yang tertertanam di esp32.
Teknik ini mungkin saja bisa di pecahkan oleh orang yang ahli. namun tidak dengan orang yang umum yang hanya ngerti upload dan re upload. Semoga tulisan dan code sederhana ini bisa membantu teman-teman yang ingin membuat produk dengan chip ESP32.