Reverse Engineering


 Reverse engineering adalah proses untuk menemukan prinsip-prinsip teknologi perangkat, objek, atau sistem melalui analisis struktur, fungsi, dan operasi. Hal ini sering melibatkan mengambil sesuatu (misalnya, perangkat mekanik, komponen elektronik, program perangkat lunak, atau biologis, kimia, atau bahan organik) terpisah dan menganalisis kerjanya secara rinci untuk digunakan dalam pemeliharaan, atau mencoba untuk membuat perangkat baru atau program yang melakukan hal yang sama tanpa menggunakan atau hanya duplikasi (tanpa pemahaman) yang asli.

 Reverse engineering memiliki asal-usul dalam analisis hardware untuk keuntungan komersial atau militer. Tujuannya adalah untuk menyimpulkan keputusan desain dari produk akhir dengan pengetahuan tambahan sedikit atau tidak ada tentang prosedur yang terlibat dalam produksi asli. Teknik yang sama yang kemudian diteliti untuk aplikasi untuk sistem perangkat lunak warisan, bukan untuk tujuan industri atau pertahanan, melainkan untuk mengganti yang salah, dokumentasi tidak lengkap, atau tidak tersedia.


 Motivasi dan alasan untuk melakukan reverse engineering :

 Interoperabilitas.Dokumentasi hilang: Reverse engineering sering dilakukan karena dokumentasi perangkat tertentu telah hilang (atau tidak pernah ditulis), dan orang yang membangunnya tidak lagi tersedia. Sirkuit terpadu sering tampak telah dirancang pada usang, sistem proprietary, yang berarti bahwa satu-satunya cara untuk memasukkan fungsionalitas ke dalam teknologi baru adalah membalik-insinyur chip yang ada dan kemudian kembali desain itu.

 Analisis produk. Untuk mengkaji bagaimana produk bekerja, apa komponen itu terdiri dari, biaya perkiraan, dan mengidentifikasi potensi pelanggaran hak paten.
 Digital update / koreksi. Untuk memperbarui versi digital (misalnya CAD model) dari sebuah objek untuk mencocokkan suatu kondisi.
 Keamanan audit.
 Mendapatkan data sensitif dengan disassembling dan menganalisis desain suatu komponen sistem.
 Militer atau komersial spionase. Belajar tentang musuh atau pesaing penelitian terbaru dengan mencuri atau menangkap prototipe dan pembongkaran itu.
 Penghapusan perlindungan salinan, pengelakan pembatasan akses.
 Penciptaan duplikat berlisensi / tidak disetujui.
 Bahan pemanenan, sortasi, atau membuang.
 Akademik / tujuan pembelajaran.
 Keingintahuan.
 Teknis intelijen kompetitif (memahami apa yang pesaing Anda benar-benar melakukan, versus apa yang mereka katakan mereka lakukan).
 Belajar: belajar dari kesalahan orang lain. Jangan membuat kesalahan yang sama bahwa orang lain telah dibuat dan kemudian diperbaiki.

 Reverse engineering pada mesin

Sebagai computer-aided design (CAD) telah menjadi lebih populer, reverse engineering telah menjadi metode yang layak untuk membuat model virtual 3D dari bagian fisik yang ada untuk digunakan dalam 3D CAD, CAM, CAE atau perangkat lunak lainnya. Reverse-proses rekayasa melibatkan pengukuran obyek dan kemudian merekonstruksi sebagai model 3D. Obyek fisik dapat diukur dengan menggunakan teknologi pemindaian 3D seperti CMMS, laser scanner, digitizers cahaya terstruktur, atau  Industrial CT Scanning (computed tomography). Data diukur sendiri, biasanya direpresentasikan sebagai titik awan, tidak memiliki informasi topologi dan karena itu sering diolah dan dibentuk menjadi format yang lebih dapat digunakan seperti mesh segitiga berwajah, satu set NURBS permukaan, atau model CAD.

 Reverse engineering juga digunakan oleh perusahaan untuk membawa geometri fisik yang ada ke dalam lingkungan pengembangan produk digital, untuk membuat catatan 3D digital produk mereka sendiri, atau untuk menilai produk pesaing. Hal ini digunakan untuk menganalisis, misalnya, bagaimana produk bekerja, apa yang dilakukannya, dan apa komponen-komponen itu terdiri dari, biaya perkiraan, dan mengidentifikasi potensi pelanggaran hak paten, dll

 Rekayasa nilai adalah aktivitas terkait juga digunakan oleh bisnis. Ini melibatkan de-constructing  dan menganalisis produk, tetapi tujuannya adalah untuk menemukan peluang untuk memotong biaya.

 Reverse engineering of software

Reverse engineering Istilah yang diterapkan untuk perangkat lunak berarti hal yang berbeda untuk orang yang berbeda, mendorong Chikofsky dan Cross untuk menulis sebuah makalah meneliti berbagai penggunaan dan mendefinisikan taksonomi. Dari tulisan mereka, mereka menyatakan, "adalah rekayasa Reverse proses menganalisis sistem subjek untuk membuat representasi dari sistem pada tingkat lebih tinggi dari abstraksi." Hal ini juga dapat dilihat sebagai "pergi ke belakang melalui siklus pengembangan".Dalam model ini, output dari tahap implementasi (dalam bentuk source code) merupakan reverse-engineered kembali ke tahap analisis, dalam sebuah pembalikan dari model air terjun tradisional. Reverse engineering adalah proses pemeriksaan hanya: sistem perangkat lunak yang dipertimbangkan tidak dimodifikasi (yang akan membuat rekayasa ulang). Perangkat lunak anti-tamper teknologi yang digunakan untuk mencegah baik reverse engineering dan re-rekayasa perangkat lunak proprietary dan perangkat lunak sistem bertenaga. Dalam prakteknya, dua jenis utama dari reverse engineering muncul. Dalam kasus pertama, kode sumber telah tersedia untuk perangkat lunak, tetapi lebih tinggi tingkat aspek program, mungkin kurang didokumentasikan atau didokumentasikan, tetapi tidak berlaku lagi, ditemukan. Dalam kasus kedua, tidak ada kode sumber tersedia untuk perangkat lunak, dan setiap upaya menuju menemukan satu kode sumber yang mungkin untuk perangkat lunak dianggap sebagai reverse engineering. Ini penggunaan kedua istilah ini yang kebanyakan orang akrab dengan. Reverse engineering perangkat lunak dapat menggunakan teknik desain kamar yang bersih untuk menghindari pelanggaran hak cipta.

 Pada catatan terkait, pengujian black box dalam rekayasa perangkat lunak memiliki banyak kesamaan dengan reverse engineering. Tester biasanya memiliki API, tetapi tujuan mereka adalah untuk menemukan bug dan fitur didokumentasikan oleh bashing produk dari luar.

 Tujuan lain dari reverse engineering meliputi audit keamanan, penghapusan perlindungan salinan ("cracking"), pengelakan pembatasan akses sering hadir dalam elektronik konsumen, kustomisasi sistem tertanam (seperti sistem manajemen mesin), di-rumah perbaikan atau retrofits, memungkinkan dari tambahan fitur pada perangkat keras berbiaya rendah "lumpuh" (seperti beberapa kartu chip grafis-set), atau kepuasan bahkan sekadar rasa ingin tahu.

 Binary software

Proses ini kadang-kadang disebut Teknik Kode Reverse atau RCE Sebagai contoh, dekompilasi binari untuk platform Java dapat dilakukan dengan menggunakan Jad.. Satu kasus terkenal reverse engineering adalah implementasi non-IBM pertama dari BIOS PC yang diluncurkan IBM PC industri bersejarah yang kompatibel yang telah platform perangkat keras komputer yang sangat dominan selama bertahun-tahun. Sebuah contoh dari kelompok yang terbalik-insinyur perangkat lunak untuk kenikmatan (dan untuk mendistribusikan retak pendaftaran) adalah CORE yang merupakan singkatan dari "Tantangan Dari Reverse Engineering". Reverse engineering perangkat lunak dilindungi di AS dengan pengecualian penggunaan yang adil dalam hukum hak cipta. Perangkat lunak Samba, yang memungkinkan sistem yang tidak menjalankan sistem Microsoft Windows untuk berbagi file dengan sistem yang, adalah contoh klasik reverse perangkat lunak rekayasa, sejak proyek Samba harus reverse-insinyur informasi yang tidak dipublikasikan tentang bagaimana Windows file sharing bekerja, sehingga non-Windows komputer dapat menirunya. Proyek Wine melakukan hal yang sama untuk Windows API, dan OpenOffice.org adalah salah satu pihak melakukan hal ini untuk format file Microsoft Office. Proyek ReactOS bahkan lebih ambisius dalam tujuannya, karena berusaha untuk menyediakan biner (ABI dan API) kompatibilitas dengan OS Windows saat ini dari cabang NT, memungkinkan perangkat lunak dan driver yang ditulis untuk Windows untuk berjalan pada bersih-ruang reverse-engineered GPL perangkat lunak bebas atau open-source pendamping.

 Binary software techniques 

Reverse engineering perangkat lunak dapat dicapai dengan berbagai metode. Tiga kelompok utama rekayasa perangkat lunak reverse

Analisis melalui pengamatan pertukaran informasi, yang paling lazim di reverse engineering protokol, yang melibatkan menggunakan alat analisis bus dan packet sniffers, misalnya, untuk mengakses bus komputer atau koneksi jaringan komputer dan mengungkapkan atasnya lalu lintas data. Bus atau jaringan perilaku kemudian dapat dianalisis untuk menghasilkan implementasi yang berdiri sendiri yang meniru perilaku itu. Hal ini sangat berguna untuk driver perangkat reverse engineering. Kadang-kadang, reverse engineering pada sistem tertanam sangat dibantu oleh alat sengaja diperkenalkan oleh produsen, seperti port JTAG debug atau cara lainnya. Pada Microsoft Windows, tingkat rendah debugger seperti SoftICE yang populer.

 Pembongkaran menggunakan disassembler, artinya bahasa mesin mentah dari program ini adalah membaca dan dipahami dalam istilah sendiri, hanya dengan bantuan bahasa mesin mnemonik. Ini bekerja pada setiap program komputer tetapi dapat mengambil beberapa waktu, terutama bagi seseorang yang tidak digunakan ke kode mesin. Para Disassembler Interaktif adalah alat yang sangat populer.

 Dekompilasi menggunakan Decompiler, sebuah proses yang mencoba, dengan hasil yang bervariasi, untuk menciptakan kode sumber dalam bahasa tingkat tinggi untuk program hanya tersedia dalam kode mesin atau bytecode.

 Legalitas Amerika Serikat
Di Amerika Serikat,

 Bahkan jika sebuah artefak atau proses dilindungi oleh rahasia dagang, reverse-engineering artefak atau proses sering halal asalkan diperoleh sah.Paten, di sisi lain, membutuhkan pengungkapan publik dari penemuan, dan karena itu, item dipatenkan tidak selalu harus membalikkan direkayasa untuk dipelajari. (Namun, item diproduksi di bawah satu atau lebih paten juga dapat mencakup teknologi lain yang tidak dipatenkan dan tidak diungkapkan.) Salah satu motivasi umum insinyur reverse untuk menentukan apakah suatu produk pesaing mengandung pelanggaran paten atau pelanggaran hak cipta.

 Reverse engineering dari perangkat lunak di AS umumnya ilegal karena kebanyakan EULA melarang itu, dan pengadilan telah menemukan larangan seperti kontrak untuk mengesampingkan hukum hak cipta;. [Klarifikasi diperlukan] melihat Bowers v. Teknologi Baystate

Sec. 103 (f) dari DMCA (17 USC § 1201 (f)) mengatakan bahwa jika Anda memperoleh program secara legal yang dilindungi, Anda diperbolehkan untuk reverse-engineer dan menghindari perlindungan untuk mencapai kemampuan interoperabilitas program komputer (misalnya , kemampuan untuk bertukar dan menggunakan informasi). Bagian menyatakan:

    (F) Reverse Engineering .-

     (1) Menyimpang dari ketentuan ayat (a) (1) (A), seseorang yang telah secara sah memperoleh hak untuk menggunakan salinan program komputer dapat menghindari ukuran teknologi yang secara efektif mengontrol akses ke suatu bagian tertentu dari program yang untuk tujuan tunggal mengidentifikasi dan menganalisis unsur-unsur program yang diperlukan untuk mencapai interoperabilitas dari sebuah program komputer secara mandiri yang dibuat dengan program lain, dan yang sebelumnya tidak tersedia untuk orang yang terlibat dalam pengelakan itu, sejauh apapun seperti tindakan identifikasi dan analisis tidak merupakan pelanggaran di bawah judul ini.

     (2) Menyimpang dari ketentuan ayat (a) (2) dan (b), seseorang dapat mengembangkan dan menggunakan sarana teknologi untuk menghindari ukuran teknologi, atau untuk menghindari perlindungan yang diberikan oleh ukuran teknologi, untuk memungkinkan identifikasi dan analisis di bawah ayat (1), atau untuk tujuan memungkinkan interoperabilitas dari sebuah program komputer secara mandiri yang dibuat dengan program lain, jika cara tersebut diperlukan untuk mencapai interoperabilitas tersebut, sejauh yang melakukannya tidak merupakan pelanggaran di bawah judul ini.

     (3) informasi yang diperoleh melalui tindakan diizinkan dalam ayat (1), dan berarti diizinkan dalam ayat (2), dapat dibuat tersedia untuk orang lain jika orang tersebut sebagaimana dimaksud dalam ayat (1) atau (2), sebagai kasus mungkin, menyediakan informasi atau sarana semata-mata untuk tujuan memungkinkan interoperabilitas dari sebuah program komputer secara mandiri yang dibuat dengan program lain, dan sejauh yang melakukannya tidak merupakan pelanggaran di bawah judul ini atau melanggar hukum yang berlaku lain dari bagian ini.

    (4) Untuk tujuan ayat ini, "interoperabilitas" berarti kemampuan program komputer untuk pertukaran informasi, dan program-program tersebut saling menggunakan informasi yang telah dipertukarkan.

 Uni Eropa
 Pasal 6 dari Petunjuk 1991 Uni Eropa Komputer Program memungkinkan reverse engineering untuk tujuan interoperabilitas, tetapi melarang untuk tujuan menciptakan produk yang bersaing, dan juga melarang rilis publik dari informasi yang diperoleh melalui reverse engineering perangkat lunak.

 Pada tahun 2009, Computer Program EU Directive digantikan dan direktif sekarang menyatakan: Reproduksi, sah penerjemahan, adaptasi atau transformasi bentuk dari kode di mana sebuah salinan dari sebuah program komputer telah dibuat tersedia merupakan pelanggaran terhadap hak eksklusif dari penulis. Namun demikian, keadaan mungkin ada ketika seperti reproduksi kode dan penerjemahan bentuknya sangat diperlukan untuk memperoleh informasi yang diperlukan untuk mencapai interoperabilitas program independen yang dibuat dengan program lain. Oleh karena itu telah dipertimbangkan bahwa, dalam keadaan yang terbatas saja, kinerja dari riwayat reproduksi dan penerjemahan oleh atau atas nama orang yang memiliki hak untuk menggunakan salinan dari program ini adalah sah dan kompatibel dengan praktek yang adil dan karenanya harus dianggap tidak memerlukan otorisasi rightholder tersebut. Tujuan dari pengecualian ini adalah untuk membuat mungkin untuk menghubungkan semua komponen dari sistem komputer, termasuk orang-orang dari produsen yang berbeda, sehingga mereka dapat bekerja sama. Seperti pengecualian hak eksklusif penulis tidak dapat digunakan dengan cara yang merugikan kepentingan yang sah dari rightholder atau yang bertentangan dengan eksploitasi normal program.

1 Komentar:

Unknown said...
This comment has been removed by a blog administrator.

Post a Comment

Silakan komentar nya

Designer by : hickaru Site http://www.hickarunata.co.cc