
Reverify Inachofanya
Reverify ni zana ya uhandisi-reverse inayosaidiwa na AI, iliyoundwa kupunguza upotoshaji wakati wa kuchanganua binary. Badala ya kuamini uundaji upya wa modeli ya lugha, Reverify huuchukulia kama dhana na kuikagua dhidi ya binary halisi.
Mtiririko wa kazi ni rahisi: modeli hupendekeza, na zana za kubainisha huthibitisha. Reverify inaweza kutenganisha baiti kuwa maagizo, kuchanganua ruwaza, kuchanganua miundo ya faili tekelezi, kutoa mifuatano ya herufi, kuiga utekelezaji wa msimbo, na kukagua miundo ya data inayotumwa kwenye mtandao. Dai lililokaguliwa hupokea mojawapo ya matokeo matatu: VERIFIED, REFUTED, au INCONCLUSIVE, pamoja na ushahidi uliobainika.
Tumia Reverify pekee kwa uhandisi-reverse ulioidhinishwa, kama vile uchanganuzi wa programu hasidi, changamoto za CTF, utafiti wa mwingiliano wa mifumo, na programu unayomiliki au umepewa ruhusa ya kuikagua.
Vipengele Muhimu
- Uthibitishaji wa kubainisha: Madai huhukumiwa dhidi ya baiti zilizobainika kwenye binary lengwa, badala ya kukubaliwa kutokana na maelezo yaliyotengenezwa na AI.
- Uchanganuzi wa faili tekelezi: Kagua faili za PE, ELF, na Mach-O, zikiwemo usanifu, sehemu ya kuanzia, sehemu, uagizaji, na uhamishaji pale vinapoungwa mkono.
- Utenganishaji wa maagizo na uigaji: Changanua msimbo wa x86, x64, ARM, na ARM64, huku uwezo ukitegemea injini zinazotumika.
- Uchanganuzi wa ruwaza na mifuatano: Changanua ruwaza za AOB zenye vibadala
??na toa mifuatano ya ASCII au UTF-16LE pamoja na nafasi zake. - Ukaguzi wa itifaki: Tambua data ya Protobuf na TLV bila kuhitaji schema.
- Huduma za uhandisi-reverse: Tengeneza ndoano za Frida, unda dump za hex zilizopangiliwa, na toa tofauti au viraka vya binary.
- Muunganisho wa mawakala: Endesha Reverify kama seva ya Model Context Protocol kwa zana kama Claude Code na Cursor.
- Njia mbadala ya Pure-Python: Kifurushi cha msingi hufanya kazi bila Ghidra au injini za lazima za uchanganuzi asilia.
Usakinishaji na Usanidi
Sakinisha Msingi wa Pure-Python
Sakinisha CLI na seva ya MCP kutoka PyPI:
pip install reverify
Hii hutoa msingi wa Pure-Python na ndiyo njia rahisi zaidi ya kuanza.
Sakinisha Injini Hiari Zilizokomaa
Kwa uchanganuzi, utenganishaji wa maagizo, na uigaji ulioboreshwa, sakinisha nyongeza kamili:
pip install "reverify[full]"
Usakinishaji kamili huwezesha Reverify kutumia Capstone kwa utenganishaji wa maagizo, Unicorn kwa uigaji wa CPU, na LIEF kwa uchanganuzi wa PE, ELF, na Mach-O. Ikiwa vifurushi hivi havipatikani, Reverify hurudi kwenye utekelezaji wake wa Pure-Python.
Angalia ni injini zipi zinazotumika:
reverify backends
Endesha Moja kwa Moja kutoka kwenye Checkout
Hifadhi ya msimbo pia inaweza kutumika bila kusakinisha kifurushi:
python reverify/cli.py auto sample.bin --json
python reverify/cli.py parse-pe sample.exe --json
python reverify/cli.py disasm 90505831C0C3 --arch x86_64
Uchunguzi wa Msingi wa Binary
Anza na amri ya auto ili kubaini muundo wa faili na usanifu, kukagua sehemu, na kuripoti mifuatano mashuhuri:
reverify auto sample.bin --json
Chaguo la --json ni muhimu wakati hati nyingine, kazi ya CI, au wakala wa AI anahitaji kutumia matokeo kwa njia ya programu.
Kwa uchanganuzi maalumu wa faili tekelezi, tumia parse kwa faili za PE, ELF, au Mach-O:
reverify parse sample.bin --json
Kwa faili tekelezi ya Windows, kichanganuzi maalumu cha PE kinaweza kukagua vichwa vya PE32 au PE32+, uagizaji, na uhamishaji:
reverify parse-pe sample.exe --json
Kutenganisha Baiti Ghafi kuwa Maagizo
Amri ya disasm inaweza kutambua msimbo wa mashine wa heksadesimali. Mfano huu huchanganua mfululizo mfupi wa x86-64:
reverify disasm 90505831C0C3 --arch x86_64
Utenganishaji wa maagizo ni muhimu kwa kukagua ikiwa mfululizo wa maagizo uliopendekezwa unaendana na baiti. Reverify pia inaweza kutenganisha msimbo kutoka kwenye sehemu ya binary, hivyo kuwezesha madai kuhusishwa na yaliyomo kwenye faili badala ya tafsiri iliyotengenezwa pekee na modeli.
Kutumia Mzunguko wa Uthibitishaji
Dai la Reverify ni dhana iliyopangwa kuhusu binary. Amri ya verify hutathmini dai na kurudisha hali yake pamoja na ushahidi uliobainishwa na zana.
Thibitisha Mfululizo wa Maagizo
Dai lifuatalo hukagua ikiwa baiti zilizo kwenye nafasi ya 4096 zinatambuliwa kama utangulizi wa funkcioni unaoanza na push, mov, na sub:
reverify verify sample.bin --claim '{
"kind": "instructions",
"offset": 4096,
"mnemonics": ["push", "mov", "sub"],
"note": "function prologue"
}'
Reverify hairudii tu tafsiri iliyopendekezwa. Husoma na kutenganisha baiti husika kuwa maagizo, kisha huripoti ikiwa mfululizo wa mnemonic ulioombwa unaungwa mkono.
Thibitisha Matokeo ya Uigaji
Pia unaweza kujaribu dai la kitabia kwa kutekeleza msimbo wa mashine kwenye kiigaji na kukagua rejesta zinazoishia:
reverify verify - --claim '{
"kind": "emulate_result",
"code": "b805000000b90300000001c8c3",
"arch": "x86",
"expect_registers": {"eax": 8}
}'
Hii inathibitisha kuwa utaratibu uliotolewa huacha eax ikiwa sawa na 8. Ni ukaguzi thabiti zaidi kuliko kukubali maelezo ya modeli kuhusu kile ambacho maagizo yanaonekana kukokotoa.
Aina za Madai Zinazopatikana
Reverify inasaidia aina hizi za madai:
bytes_athukagua baiti katika eneo lililotajwa.pattern_presenthukagua ikiwa muundo wa baiti upo.string_presenthutafuta mfuatano wa maandishi katika faili ya binary.instructionshukagua mfuatano wa maagizo uliopendekezwa.emulate_resulthukagua matokeo yanayotarajiwa ya rejista baada ya uigaji.protobuf_fieldhukagua dai kuhusu sehemu ya Protobuf.pe_importhukagua dai kuhusu uingizaji wa PE.
Uthibitishaji wa Kundi na Udhibiti wa CI
Kwa uchunguzi mkubwa zaidi, weka madai mengi katika faili ya JSON na uyathibitishe pamoja:
reverify verify sample.bin --claims-file claims.json
CLI hutoka ikiwa na hali isiyo sifuri endapo dai lolote limekanushwa. Tabia hii inafanya ifae kwa mabomba ya CI na mtiririko wa kazi wa mawakala otomatiki: muundo au taratibu iliyoundwa upya inaweza kukataliwa kabla ya kuchapishwa au kutumiwa na hatua inayofuata.
Mtiririko wa kazi wa kivitendo ni:
- Tumia
auto,parse,strings, audisasmkukusanya ushahidi wa awali. - Mchambuzi au modeli iunde madai yenye upeo finyu.
- Hifadhi madai yanayohusiana katika faili ya JSON.
- Tumia
verifyna ukague kila matokeo yaREFUTEDauINCONCLUSIVE. - Rekebisha uundaji upya na urudie hadi madai yanayoungwa mkono yaegemee ushahidi ulioonekana.
Amri za Ziada za Uchambuzi
Reverify ina amri kadhaa maalum zinazoweza kusaidia katika mchakato wa uthibitishaji:
- Uchanganuzi wa miundo: Tumia
pattern-scankwa utafutaji wa AOB wenye baiti kamili na vibadala vya??. - Utoaji wa maandishi: Tumia
stringskutafuta mfuatano wa ASCII na UTF-16LE na kuhifadhi nafasi zao. - Uigaji mdogo: Tumia
emulatekuchunguza tabia ya rejista na steki ya CPU. - Uchanganuzi wa muundo wa waya: Tumia
decode-protobufaudecode-tlvkuchanganua data isiyo na skima. - Muunganisho wa Frida: Tumia
gen-hookkuzalisha hati ya interceptor. - Ukaguzi ghafi: Tumia
hexdumpkupata mwonekano uliopangiliwa wa data ya binary. - Uchanganuzi wa mabadiliko: Tumia
diff-patchkwa tofauti za binary na uundaji wa patch. - Ukaguzi wa mipaka: Tumia
audit-boundarykwa ukaguzi wa kiulinzi wa mipaka ya mfumo wa faili na SSRF.
Kukamilisha Mzunguko kwa Uundaji Upya
Amri ya reconstruct inatekeleza mbinu ya Reverify ya mzunguko uliofungwa: modeli hupendekeza madai, zana bainifu huzihukumu, na mchakato hurudiwa kuelekea matokeo yanayotegemea ushahidi. Hii ni bora kuliko kuomba modeli iunde muundo au algoriti kamili na kuchukulia jibu lake la kwanza kuwa mamlaka.
Kwa matokeo ya kuaminika, yaweke madai madogo na yanayoweza kujaribiwa. Dai kuhusu baiti kamili, mfuatano mfupi wa maagizo, chaguo za kukokotoa zilizoingizwa, au matokeo ya rejista ni rahisi kuthibitisha na kurekebisha kuliko maelezo mapana kuhusu binary nzima.
Kuunganisha Reverify na Mawakala wa AI
Anzisha seva ya MCP kutoka kwenye nakala ya hifadhi kwa kutumia:
python reverify/mcp_server.py
Kisha unaweza kusanidi mteja anayeoana na MCP kama vile Claude Code au Cursor ili azindue seva. Wakala anaweza kuita zana za Reverify za uchanganuzi, kutenganisha maagizo, kuchanganua na kuthibitisha moja kwa moja.
Zana ya MCP re_verify_claim hufanya mzunguko huo wa uthibitishaji upatikane kwa mawakala. Hii humwezesha wakala kuwasilisha dhana, kupokea VERIFIED, REFUTED, au INCONCLUSIVE, na kurekebisha uchanganuzi wake kabla ya kutoa hitimisho.
Vidokezo vya Juu
- Kagua backend zinazotumika kwanza: Endesha
reverify backendskabla ya uchanganuzi ili ujue ikiwa Capstone, Unicorn na LIEF zinapatikana. - Pendelea matokeo ya JSON: Tumia
--jsonwakati matokeo yatakapochanganuliwa na hati, mawakala au mifumo ya CI. - Tenganisha uchunguzi na tafsiri: Rekodi nafasi, baiti, maagizo yaliyosimbuliwa na hali za rejista kabla ya kuandika maelezo ya kiwango cha juu.
- Shughulikia matokeo yasiyothibitisha kwa uaminifu: Matokeo ya
INCONCLUSIVEsi uthibitishaji. Kusanya ushahidi zaidi au punguza upeo wa dai. - Weka madai yanayohusiana katika kundi: Weka ukaguzi wa kimuundo na kitabia katika faili ya madai ili dhana moja iliyokanushwa iweze kusimamisha uundaji upya wa kiotomatiki.
- Tumia uigaji kwa madai ya kitabia: Ikiwa dai linasema taratibu hukokotoa nini, thibitisha hali ya rejista inayotarajiwa badala ya kutegemea utenganishaji wa maagizo pekee.
- Tumia mbadala safi wa Python kwa uhamishaji: Anza na kifurushi msingi, kisha sakinisha
reverify[full]pale injini asilia zilizokomaa zinapohitajika.
Hitimisho
Reverify hufanya uhandisi wa nyuma unaosaidiwa na AI uwe wenye kutetewa zaidi kwa kuhitaji madai muhimu yapitie ukaguzi bainifu dhidi ya binary. CLI yake inasaidia uchunguzi wa haraka, uchanganuzi, utenganishaji wa maagizo, uchanganuzi wa miundo, uigaji na uthibitishaji wa kundi, huku seva yake ya MCP ikiwezesha mawakala wa AI kufikia mtiririko huohuo wa kazi unaotegemea ushahidi. Matokeo yake ni uchanganuzi unaotegemea baiti zilizoonekana badala ya makisio yenye kujiamini.
Reverify imepewa leseni ya MIT na inapatikana kwenye PyPI.
