Π‘ΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΄Π»Ρ ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π° Rizin ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ Π½ΠΈΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Cutter. ΠΡΠΎΠ΅ΠΊΡ Rizin Π½Π°ΡΠ°Π»ΡΡ ΠΊΠ°ΠΊ ΡΠΎΡΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Radare2 ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» Π΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Ρ ΡΠΊΠ»ΠΎΠ½ΠΎΠΌ Π½Π° ΡΠ΄ΠΎΠ±Π½ΡΠΉ API ΠΈ ΡΠΎΠΊΡΡΠΎΠΌ Π½Π° Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° Π±Π΅Π· ΡΠΎΡΠ΅Π½Π·ΠΈΠΊΠΈ. Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΠΈ («ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²») Π² Π²ΠΈΠ΄Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π±Π°Π·Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ 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.
- ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π° Π½ΠΎΠ²ΡΠΉ RzIL ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ARMv7/ARMv8, AVR, 6052, brainfuck. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ΅Π»ΠΈΠ·Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π΄Π»Ρ SuperH, PowerPC ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ x86.
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΡΡΠ΅Π½Ρ:
- rz-libyara – ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Rizin/Cutter Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°ΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Yara;
- rz-libdemangle – Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΠΈΠΌΡΠ½ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ·ΡΠΊΠΎΠ² C++/ObjC/Rust/Swift/Java;
- rz-ghidra – ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Rizin/Cutter Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (Π½Π° Π±Π°Π·Π΅ C++ ΠΊΠΎΠ΄Π° Ghidra);
- jsdec – ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Rizin/Cutter Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ;
- rz-retdec – ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Rizin/Cutter Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (Π½Π° Π±Π°Π·Π΅ RetDec);
- rz-tracetest – ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² RzIL ΠΏΡΡΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ°ΡΡΠΎΠΉ ΡΠΌΡΠ»ΡΡΠΈΠΈ (Π½Π° Π±Π°Π·Π΅ QEMU, VICE).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru