ΠΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ° Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎ Rizin ΠΈ ΡΠ²ΡΡΠ·Π°Π½Π°ΡΠ° Π³ΡΠ°ΡΠΈΡΠ½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Cutter ΡΠ΅ ΡΡΡΡΠΎΡ. ΠΡΠΎΠ΅ΠΊΡΡΡ Rizin Π·Π°ΠΏΠΎΡΠ½Π° ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ° Radare2 ΠΈ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ ΡΠΈ Ρ Π°ΠΊΡΠ΅Π½Ρ Π²ΡΡΡ Ρ ΡΠ΄ΠΎΠ±Π΅Π½ API ΠΈ ΡΠΎΠΊΡΡ Π²ΡΡΡ Ρ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄ Π±Π΅Π· ΠΊΡΠΈΠΌΠΈΠ½Π°Π»ΠΈΡΡΠΈΠΊΠ°. Π‘Π»Π΅Π΄ ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΠΊΡΠΌ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΈ (βΠΏΡΠΎΠ΅ΠΊΡΠΈβ) ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π°, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½Π° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· LGPLv3.
ΠΡΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π° Cutter Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Qt ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· GPLv3. Cutter, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΈΡ Rizin, Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ JVM ΠΈΠ»ΠΈ PYC). ΠΠΌΠ° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π·Π° Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π·Π° Cutter/Rizin, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Ghidra, JSdec ΠΈ RetDec.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° FLIRT ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π² IDA Pro;
- ΠΠ°ΠΊΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠΈ Π·Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ;
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Go Π·Π° x86/x64/PowerPC/MIPS/ARM/RISC-V;
- ΠΡΠ²Π΅Π΄Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ RzIL, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° BAP Core Theory (SMT-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π΅Π·ΠΈΠΊ);
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ Π·Π° βΡΡΡΠΎΠ²ΠΈβ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅;
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° βΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈβ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ Π½Π° Windows PageDump/Minidump Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ;
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Π΄Π΅Π±ΡΠ³Π΅ΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° WinDbg/KD.
- Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ARMv7/ARMv8, AVR, 6052, brainfuck Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½Π° ΠΊΡΠΌ Π½ΠΎΠ²ΠΈΡ RzIL. ΠΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΠΏΡΠ΅Π²ΠΎΠ΄Π° Π·Π° SuperH, PowerPC ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ x86.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΡΠ½Π°ΡΠΈ:
- rz-libyara β ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Rizin/Cutter Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ Yara;
- rz-libdemangle β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π΅Π·ΠΈΡΠΈ C++/ObjC/Rust/Swift/Java;
- rz-ghidra β ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Rizin/Cutter Π·Π° Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ (Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Ghidra C++ ΠΊΠΎΠ΄);
- jsdec β ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Rizin/Cutter Π·Π° Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°;
- rz-retdec β ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Rizin/Cutter Π·Π° Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ (Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° RetDec);
- rz-tracetest β ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΠΊΡΡΡΡΠΎΡΠ°Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠ΅Π²ΠΎΠ΄Π° Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΈΡ ΠΊΠΎΠ΄ Π² RzIL ΡΡΠ΅Π· ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ (Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° QEMU, VICE).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru