Reverse engineering Rizin 0.4.0 နှင့် GUI Cutter 2.1.0 အတွက် မူဘောင်ကို ထုတ်ပြန်ခြင်း

ပြောင်းပြန်အင်ဂျင်နီယာ Rizin အတွက် မူဘောင်နှင့် ဆက်စပ်ဂရပ်ဖစ် အခွံဖြတ်စက်ကို ထုတ်ဝေခဲ့သည်။ Rizin ပရောဂျက်သည် Radare2 မူဘောင်၏ လမ်းဆုံလမ်းခွအဖြစ် စတင်ခဲ့ပြီး အဆင်ပြေသော API ကို အလေးပေးကာ မှုခင်းဆေးပညာများမပါဘဲ ကုဒ်ခွဲခြမ်းစိတ်ဖြာမှုအပေါ် အာရုံစိုက်ကာ ဆက်လက်လုပ်ဆောင်ခဲ့သည်။ လမ်းဆုံလမ်းခွမှစတင်၍ ပရောဂျက်သည် နံပါတ်စဉ်အလိုက်သတ်မှတ်မှုအပေါ်အခြေခံသည့် အခြေအနေတစ်ခုအသွင်ဖြင့် သိမ်းဆည်းခြင်းကဏ္ဍများ (“ပရောဂျက်များ”) အတွက် အခြေခံကွဲပြားသော ယန္တရားတစ်ခုသို့ ပြောင်းသွားပါသည်။ ထို့အပြင်၊ ပိုမိုထိန်းသိမ်းနိုင်စေရန်အတွက် ကုဒ်အခြေခံကို သိသာထင်ရှားစွာ ပြန်လည်ဒီဇိုင်းပြုလုပ်ထားသည်။ ပရောဂျက်ကုဒ်ကို C ဖြင့် ရေးသားထားပြီး LGPLv3 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

Cutter graphical shell ကို Qt ကို အသုံးပြု၍ C++ ဖြင့် ရေးသားထားပြီး GPLv3 လိုင်စင်အောက်တွင် ဖြန့်ဝေပါသည်။ Rizin ကိုယ်တိုင်ကဲ့သို့ Cutter သည် စက်ကုဒ် သို့မဟုတ် bytecode (ဥပမာ JVM သို့မဟုတ် PYC) တွင် ပြောင်းပြန်အင်ဂျင်နီယာပရိုဂရမ်များ၏ လုပ်ငန်းစဉ်အတွက် ရည်ရွယ်ပါသည်။ Ghidra၊ JSdec နှင့် RetDec အပေါ်အခြေခံ၍ Cutter/Rizin အတွက် decompilation plugin များရှိသည်။

Reverse engineering Rizin 0.4.0 နှင့် GUI Cutter 2.1.0 အတွက် မူဘောင်ကို ထုတ်ပြန်ခြင်း

ထုတ်ဝေမှုအသစ်တွင်-

  • ထို့နောက် IDA Pro တွင် တင်နိုင်သည့် FLIRT လက်မှတ်များ ဖန်တီးခြင်းအတွက် ပံ့ပိုးမှု ထပ်လောင်းထည့်သွင်းထားသည်။
  • ပက်ကေ့ဂျ်တွင် လူကြိုက်များသော စာကြည့်တိုက်များအတွက် စံလက်မှတ်များ ဒေတာဘေ့စ်တစ်ခု ပါဝင်သည်။
  • x86/x64/PowerPC/MIPS/ARM/RISC-V အတွက် Go တွင် လုပ်ဆောင်နိုင်သော လုပ်ဆောင်ချက်များနှင့် ဖိုင်လိုင်းများ၏ လုပ်ဆောင်ချက်များနှင့် အသိအမှတ်ပြုမှုကို ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ထားသည်။
  • BAP Core သီအိုရီ (SMT-like language) ကိုအခြေခံ၍ အလယ်အလတ်ကိုယ်စားပြုဘာသာစကား RzIL အသစ်ကို အကောင်အထည်ဖော်လိုက်ပါပြီ။
  • “ကြမ်း” ဖိုင်များအတွက် အခြေခံလိပ်စာကို အလိုအလျောက်ရှာဖွေနိုင်မှုကို ထပ်ဖြည့်ထားသည်။
  • Windows PageDump/Minidump ဖော်မတ်များကို အမှားရှာပြင်မုဒ်တွင် အခြေခံထားသည့် မမ်မိုရီ “လျှပ်တစ်ပြက်ပုံများ” တင်ခြင်းအတွက် ပံ့ပိုးမှုကို အကောင်အထည် ဖော်ထားသည်။
  • WinDbg/KD ကို အခြေခံ၍ အဝေးထိန်း အမှားရှာများ ဖြင့် ပိုမိုကောင်းမွန်အောင် လုပ်ဆောင်ပါ။
  • လောလောဆယ်တွင်၊ ARMv7/ARMv8၊ AVR၊ 6052၊ brainfuck ဗိသုကာများကို RzIL အသစ်သို့ လွှဲပြောင်းထားပါသည်။ လာမည့်ထုတ်ဝေမှုတွင် SuperH၊ PowerPC နှင့် တစ်စိတ်တစ်ပိုင်း x86 အတွက် ဘာသာပြန်ဆိုချက် အပြီးသတ်ရန် စီစဉ်ထားသည်။

ထပ်လောင်းထုတ်ဝေခဲ့သည်-

  • rz-libyara – Yara ဖော်မတ်တွင် လက်မှတ်များ တင်ခြင်းနှင့် ဖန်တီးခြင်းကို ပံ့ပိုးရန် Rizin/Cutter အတွက် ပလပ်အင်၊
  • 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) နှင့် နှိုင်းယှဉ်ခြင်း။

source: opennet.ru

မှတ်ချက် Add