Rekayasa terbalik. Ceritanya Milik saya


Hai semuanya


Kali ini artikelnya tidak akan bersifat teknis (walaupun beberapa istilah / momen teknis akan muncul di dalamnya), tetapi lebih merupakan autobiografi, jika boleh saya katakan demikian. Artikel ini tentang bagaimana saya datang ke kehidupan seperti itu Saya datang untuk membalikkan teknik yang saya baca, apa yang saya minati, di mana saya menggunakannya, dll. Dan, untuk beberapa alasan, saya yakin cerita saya akan memiliki banyak perbedaan dari cerita Anda. Ayo pergi ...


Mulai


Dan semuanya dimulai masih di masa kanak-kanak yang jauh. Saya pikir, seperti banyak cowok (dan mungkin cewek), saya selalu tertarik untuk mengetahui bagaimana semuanya bekerja, mengapa itu bekerja, mengapa itu tidak berhasil, dll.
Pertama, saya mulai membongkar semua mobil bertenaga baterai yang saya miliki (bahkan yang dimiliki saudara saya). Tentu saja, itu tidak selalu mungkin untuk mengumpulkan, tetapi, bunga di atas. Kemudian dia menemukan beberapa perekam radio tua dari ayahnya di dapur, dan dia membukanya juga. Ada juga tamagotchi . Tapi di sana saya sama sekali tidak bisa memahami apa pun: sirkuit mikro, setetes, dan layar. Meskipun ya, saya melapis layar.
Tentu saja, untuk semua yang tidak dikumpulkan, saya menerima topi.


Sega mega drive



Ayah saya membelinya untuk ulang tahun saya: bajak laut biasa, karena tidak ada lisensi apa pun saat itu, ditambah dengan Contra: Hard Corps cartridge. Saya yakin bahwa waktu pembelian set-top box untuk banyak anak tahun 90-an belum dilupakan sejauh ini (romhackers dan retro-gamer - halo!), Dan bagi saya itu juga menjadi kunci di masa depan. Tetapi hal pertama yang pertama.


Waktu berlalu, saya tumbuh. Sekolah selalu tertarik pada ilmu komputer dan fisika (juga kimia). Assembler di sana, tentu saja, tidak diajarkan, tetapi pemrograman dalam lingkungan algoritme (pengembangan Belarusia untuk sekolah) sangat merata. Dan, itu mengejutkan bagi saya ketika saya pergi ke Olimpiade regional dalam ilmu komputer, dan semua orang kecuali saya memiliki jendela Turbo Pascal biru, dan saya memiliki putih - . Tapi, kemudian saya mengambil tempat ketiga terhormat.


Kelas 11



( catatan penulis: komputer yang sama, hanya nanti)


Pada musim gugur 2005, saya membeli komputer. Sejak hari pertama saya mulai bermain game. Belajar di sekolah tenggelam, tetapi tetap pada tingkat normal untuk gimnasium. Dan setelah enam bulan saya bosan bermain. Kemudian titik balik terjadi!


Nonheimer


Saat itu, pada tahun 2006, seperti yang saya kira, boom warez dimulai. Banyak situs dengan retakan, keygens, patch. Semua orang mencoba untuk mengemas ulang penginstal sedemikian rupa (halo ke build Windows) sehingga pengunduh tidak perlu melakukan apa-apa ekstra: itu diinstal dan berfungsi, meskipun kadang-kadang menambahkan sesuatu dari dirinya sendiri.


Dan saya seperti itu. Benar, dia tidak membuat " tablet ", dia hanya menemukan mereka, menggambar kotak NFO , mengemas ulang installer (paling sering itu adalah Inno Setup ), dan kemudian Anda tahu.



Penerjemah



Jadi, untuk beberapa alasan saya tidak suka bahwa tidak semua program diterjemahkan ke dalam bahasa Rusia, dan saya ingin memperbaikinya. Saya mengunggah berbagai editor sumber daya, seperti Resource Hacker , mulai membuka semua file exe dan dll dari program yang saya temukan di Program Files , dan melihat sumber string yang dapat diterjemahkan. Saya menerjemahkannya, mengemasnya ke file .lng atau .RUS , dan mengunggahnya (saya tidak tahu bagaimana file rus ini bekerja). Tetapi ini berlanjut sampai saya menemukan file yang dikemas dan dilindungi.


cracklab.ru


Sekarang exelab.ru . Di sanalah saya belajar bahwa file yang dapat dieksekusi dikemas (dan kadang-kadang dilindungi), serta cara menghadapinya. Dan, karena penulis sering menyebutkan hal-hal seperti " assembler ", " disassembly ", " mailing list Kalashnikov " dalam artikel mereka, saya harus mempelajari materi.


Saya mengunduh beberapa " crackmakes " untuk percobaan (program yang ditulis khusus untuk dibalik sambil belajar cara meretas dan perlindungan ) Saya mencobanya - saya sangat menyukainya! Semuanya ternyata pertama kali, yang saya sangat senang.


Akibatnya, pertahanan sederhana dihilangkan satu atau dua kali dengan bantuan menambal (dari kata patch - sebuah tambalan), tetapi dengan yang lebih sulit (saya memutuskan untuk mencoba catur erotis dan hadiah ) itu entah bagaimana menjadi sulit, dan saya berhenti, memutuskan untuk kembali untuk terjemahan.



Romhacking


Kadang-kadang bermain di Sega , saya menemukan kartrid dalam bahasa Rusia, pada layar judul permainan yang ada tulisan seperti “ SHEDEVR Terjemahan SHEDEVR ”, “ Terjemahan NEW-GAME.RU ”. Entah itu pengembang, atau organisasi pihak ketiga, saya tidak tahu, tetapi mereka jelas memiliki akses ke beberapa manuskrip, teks kuno bangsa Sumeria, yang memberi tahu cara menerjemahkan game ke dalam bahasa Rusia. Dan saya ingin menguasai pengetahuan ini.



Jadi saya menemukan forum " Mahakarya ".


Mereka memiliki artikel, ada program - semua yang diperlukan untuk membuat game favorit Anda juga “ game favorit Anda dalam bahasa Rusia ”. Benar, artikel-artikel itu hanya untuk NES ( Nintendo Entertainment System , atau populer : Dandy , Suybor ). Tapi tetap keren! Dan saya terjun ke topik baru dan menarik untuk diri saya: Romhacking dan emulasi konsol retro di PC.



Singkatnya, romhacking adalah perubahan pada gambar atau file game untuk tujuan apa pun: terjemahan, koreksi kode, grafik.


Itu adalah proses yang sangat menghibur: Anda duduk, menggambar ulang kuadrat font game demi pixel, menerjemahkan dan menempelkan teks dengan PokePerevod terjemahan PokePerevod , dan melihat apa yang terjadi. Benar, tidak ada assembler untuk Anda, hanya hardcore! Tapi ini sudah menjadi bar yang sangat sedikit bisa dilewati (dilihat dari jumlah yang aktif di forum Masterpiece).


Saya seorang guru


Setelah membuat beberapa terjemahan "ke meja", dan beberapa ke orang-orang, saya kembali ke file yang dapat dieksekusi Windows . Sedikit lebih terampil dalam assembler, saya menyadari bahwa sekarang saya memiliki terlalu banyak pengetahuan " rahasia ", dan saya memiliki sesuatu untuk diceritakan dari pengalaman saya, ada sesuatu untuk dibagikan, dan apa yang belum dijelaskan dalam artikel yang tersedia. Saya ingin mentransfer pengetahuan ke pemula yang sama seperti saya sendiri (ternyata, itu mempengaruhi fakta bahwa ibu saya seorang guru).


Setelah mengambil program pertama yang memerlukan lisensi (dan hampir semua artikel yang mengajarkan cracking dimulai dengan cara itu), saya memutuskan untuk merisetnya, sambil memberi tahu saya apa yang saya lakukan. Maka tidak akan tampak bahwa program tersebut diambil secara khusus dari versi lama, lama dipelajari, dipatahkan, tetapi sebaliknya akan menjadi pelajaran yang segar dan relevan, dengan tangkapan layar dan hampir tidak ada alamat absolut, untuk mempertahankan relevansi artikel pada saat membaca oleh seseorang di masa depan


Setelah menerima umpan balik positif, saya semakin banyak menulis, menyadari bahwa ada permintaan.


Alat-alatnya



Saat menulis setiap artikel, saya hanya mencoba menggunakan program terbaru dan paling nyaman saat itu: Olly Debugger dengan plugins, PEiD , PE Explorer , dan banyak lainnya. Tidak ada SoftICE , SoftICE , dan DEBUG.COM , yang digunakan sebagian besar penulis, meskipun menggunakannya di dunia modern benar-benar menyakitkan.


Namun, pada saat itu saya tidak pernah menggunakan IDA Pro . Tampaknya rumit dan tidak bisa dimengerti oleh saya, sangat sulit untuk men-debug di dalamnya, dan hal-hal paling sederhana seperti FS[0x30] dan LastError , seperti di Olly Debugger , sangat sulit untuk mengetahuinya.


Apakah mahasiswa mengajar terbalik?


Singkatnya, di Belarus ketat, dan sejauh yang saya tahu, di Rusia dan Ukraina juga. Mengapa Ya, karena spesialis dalam profesi ini biasanya diperlukan dalam satu setengah organisasi, dan, biasanya, satu setengah orang. Sebenarnya, tidak banyak guru.



Ya, assembler, tentu saja, diajarkan, bahkan di beberapa perguruan tinggi. Hanya seorang siswa, yang melihat daftar assembler tertulis, yang hampir tidak dapat menyadari bahwa semua register, operan, opcode ini entah bagaimana terhubung dengan perlindungan informasi, eksploitasi, crack, keygenes, patch, malware, antivirus, firmware, dll.


Sebagai contoh, di Belarus saya hanya tahu dua atau tiga tempat di mana para insinyur terbalik diperlukan. Di Rusia, tentu saja, situasinya lebih baik, tetapi ada juga beberapa spesialis.


Pekerjaan pertama


Saya memutuskan untuk pergi ke salah satu perusahaan ini untuk bekerja sebagai analis viral, menyadari bahwa, pada kenyataannya, tidak ada tempat lain untuk pergi.
Anda membalikkan malware, merekatkan lem, mempelajari prinsip-prinsip operasi malware, menulis dekripsi untuk ransomware (jika mungkin), dan sepanjang jalan meningkatkan kernel.


Pada prinsipnya, pekerjaan itu tidak buruk, tetapi hanya setelah beberapa saat saya menyadari bahwa tidak lebih dekat untuk menonton malware mengeksploitasi kerentanan apa pun, tetapi untuk menemukan sendiri, untuk menjadi yang pertama melakukan ini, membantu melindungi dunia informasi dengan laporan yang dikirim ke pengembang.


Assembler lainnya


Setelah saya mengetahui bahwa selain kode assembler Intel (16-, 32-, 64-bit), ada satu lagi, yang pada awalnya tampaknya sama sekali tidak seperti yang Anda tahu. Ini terjadi pada saat saya menerjemahkan game favorit saya - " Thunder Force III ", di mana saudara lelaki saya bermain lebih baik daripada saya.



Sumber daya di dalamnya ternyata dikompres oleh beberapa pengepak yang tidak dikenal, karena Saya tidak dapat menemukan font dengan editor ubin apa pun ( itu dalam program-program seperti itu bahwa huruf game sering digambar ulang, yang ditampilkan di layar ).


Karena itu, saya mulai mencari di Google, akhirnya menemukan karya seorang Prancis, yang baru saja menemukan algoritma kompresi permainan. Saya menghubungi orang ini, menanyakan bagaimana ia mempelajari prinsip algoritma kompresi, yang ia IDB untuk melemparkan kartu IDB saya yang pertama (ini adalah file database IDA Pro ), di mana banyak titik kode permainan diuraikan, yang benar-benar membuat saya terkesan!


Jadi saya terjun ke hutan IDA Pro dan assembler Motorola 68000 , dari mana saya belum keluar (dan tidak mau) sampai sekarang.



PS Saya tidak menerjemahkan Thunder Force III , tetapi saya menulis editor level untuk itu.


Playstation Sony



Ya, yang berikutnya adalah " curling iron " pertama . Dia juga memiliki assembler lain - MIPS , dengan register, opcode, alamat yang berbeda. Dan pada konsol ini masih ada game dengan sumber daya menuai yang perlu dilokalisasi.


Membalikkan pemikiran dan keygen pertama


Tahukah Anda apa yang kemudian menjadi ujian nyata bagi saya? Dengan hanya daftar kode rakitan yang mendekompres sesuatu, tulis pembungkus untuk itu. Di sini perlu untuk mengembangkan pemikiran terbalik, yang praktis tidak diperlukan selama penambalan " crackmills ", dan untuk menyembuhkan program dari keserakahan.


Saya mencoba untuk pergi dari kebalikannya, memahami apa yang harus di output, di input, dan byte data terkompresi apa yang bertanggung jawab untuk apa, untuk melakukan hal yang sama.


Setelah menulis lebih banyak utilitas untuk banyak permainan untuk membongkar dan mengemas data, saya menyadari bahwa saya siap untuk menulis keygen pertama saya, karena sudah belajar berpikir sebaliknya.


Saya tidak ingat program apa itu, tetapi keygen sukses, dan dari nama pengguna saya bisa selalu mendapatkan nomor seri yang benar. Apa yang diceritakan juga dalam artikel tersebut.


Artikel keygen


Tetapi menulis artikel tentang keygen itu sulit. Lebih berat dari menulis keygen. Karena cukup sulit untuk menyampaikan prinsip pemikiran terbalik dalam artikel. Suka semua yang datang dengan pengalaman.


Tim cracker



Pada awalnya, jika Anda, seperti saya, datang secara otodidak, Anda akan membalikkannya, untuk diri sendiri (atau untuk orang-orang, itu akan berjalan seperti itu). Dan itu cocok untukmu. Tapi, kemudian Anda menemukan semacam rilis tim cracker (ini adalah orang-orang yang memposting perangkat lunak yang diretas dengan crack dan keygen), dan memutuskan untuk bergabung dengan mereka. Di sana Anda dapat membandingkan kekuatan Anda dengan orang lain, dan pada saat yang sama mendapatkan pengalaman dari mereka.


Berkumpul dalam semangat, Anda menulis surat meminta Anda untuk bergabung. Mereka mengirim tugas dalam bentuk keygenmy. Anda mengatasinya, setelah itu mereka memberi Anda akses ke tim obrolan.


Padahal, tidak semuanya adalah pembalik. Seseorang adalah seorang seniman, seseorang tahu cara mendapatkan perangkat lunak berbayar, seseorang memiliki kekuatan komputasi (kemampuan untuk memperhitungkan kunci publik RSA-512 dalam dua hari, untuk 2013, jika diperlukan untuk menghapus perlindungan lisensi). Secara umum, manfaatnya jelas. Tetapi perangkat lunak untuk rilis masih tetap yang Anda pilih, paling sering. Dan Anda tidak mendapatkan uang untuk rilis. Yang benar adalah.


Lalu apa untungnya, Anda bertanya? Ini akan dirilis sebelum tim lain ( FFF , CoRE dan banyak lainnya). Topik ini terungkap dengan sangat baik dalam seri web " Scene ".


Masalah dengan hukum?


Ya, untuk distribusi crack dan keygen masih ada peluang untuk mengguntur (terutama jika programnya populer dan menghabiskan banyak uang). Kapan saja, pembelian tes dapat terjadi: seorang paman yang menulis kepada Anda untuk " retas Adobe / 1C akan menulis kepada Anda berapa biayanya " (kisah nyata). Tetapi orang-orang ingin bertahan, terutama jika tidak ada pekerjaan, tetapi Anda ingin menggunakan " keterampilan ", tidak masalah di mana sejauh ini. Dan mereka mulai melakukan ekstrem ...


... bergemuruh dengan perangkat lunak yang rusak, memecahkan program untuk mendapatkan uang.


Dan, pada saat itu ketika ada keinginan untuk hidup jujur, cracker akan mendapatkan pekerjaan, masa lalunya digali di sana, dan - " Maaf, tapi masa lalu Anda tidak menguntungkan Anda! ". Meskipun, dari posisi saya, seseorang dengan pengalaman seperti itu harus diambil dengan tangan dan kaki, karena, pertama, Anda memberi seseorang kesempatan untuk meningkatkan, dan, kedua, mengarahkan pengetahuannya ke arah yang benar. Di antara teman-teman saya, ada beberapa contoh pekerjaan yang berhasil di bidang anti-virus, di mana seorang kawan di bidang jaminan sosial mengatakan bahwa ia memecahkan program sesuai pesanan.


Kunci lisensi yang diterima dengan jujur


Ya, dan itu terjadi. Bahkan cracker. Ada suatu artikel tentang cara meminta kunci kepada pengembang. Jadi saya coba lakukan. Itu tidak membantu.


Pada tahun-tahun itu, saya hanya mempelajari pers " buta ", dan sedang mencari program yang memadai untuk ini. Shahidzhanyan meledakkan otaknya dengan nya , jadi saya mulai mencari alternatif. Stumbled atas Typing Reflex . Dia dibayar, tetapi sangat bagus.


Kemudian saya menerjemahkan program ke Belarusia, dan mengirim penulis file bahasa. Untuk yang saya terima sebagai tanggapan, kunci lisensi atas nama saya! Kunci lisensi pertama saya.



Apa selanjutnya


Setelah bermain cukup sebagai bajak laut, Anda secara bertahap sampai pada kesimpulan bahwa Anda memiliki pekerjaan, gajinya stabil, Anda melakukan hal favorit Anda, yang berarti saatnya untuk mengikat dengan hal-hal buruk.


Dari pilihan ke mana harus pergi: perusahaan anti-virus, keamanan industri (firmware terbalik, protokol industri, pencarian kerentanan), departemen khusus dari beberapa perusahaan besar, seperti Sony , di mana Anda perlu meneliti keamanan produk Anda sendiri, atau menjadi kuat dan seorang insinyur balik independen dan menghasilkan uang dari bugbounty, berbicara di konferensi, dll.


Ada juga insinyur balik yang merupakan insinyur perangkat keras (mereka yang membalikkan perangkat keras), tetapi saya tahu sedikit tentang mereka. Meskipun, topiknya sangat menarik. Saya lebih pada sisi perangkat lunak.


Nirvana


Setelah melihat berbagai platform, kode assembler ( Intel , ARM , PowerPC , M68K , 6502 , MIPS , 65c816 , Blackfin , IA64 dan beberapa lainnya, saya tidak ingat), Anda sampai pada kesimpulan bahwa prinsip untuk semua assembler hampir sama (well, kecuali mungkin Itanium), dan Anda mulai melihat daftar tak berujung ini dengan cara yang berbeda: pertama-tama, Anda menemukan perintah lompatan, move perintah, kembali dari fungsi, sisi source mana, tujuan, dan kemudian keadaan. Jadi kamu mencapai nirwana ...

Source: https://habr.com/ru/post/id438376/


All Articles