مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

Reverify کے ساتھ AI معاون بائنری تجزیے کی تصدیق کریں

Reverify انسٹال کرنے، بائنری فائلوں کا معائنہ کرنے، ساختی اور رویّاتی دعووں کی تصدیق کرنے، جانچ خودکار بنانے، اور MCP کے ذریعے AI ایجنٹس کو قابلِ تعین ریورس انجینئرنگ ٹولز فراہم کرنے کا طریقہ سیکھیں۔

Reverify کے ساتھ AI معاون بائنری تجزیے کی تصدیق کریں

Reverify کیا کرتا ہے

Reverify ایک AI معاون ریورس انجینئرنگ ٹول کِٹ ہے، جو بائنری تجزیے کے دوران فرضی یا غلط معلومات پیدا ہونے کے امکانات کم کرنے کے لیے بنائی گئی ہے۔ زبان کے ماڈل کی تشکیلِ نو پر بھروسا کرنے کے بجائے، Reverify اسے ایک مفروضہ سمجھتا ہے اور اصل بائنری کے خلاف اس کی جانچ کرتا ہے۔

طریقۂ کار سادہ ہے: ماڈل تجویز پیش کرتا ہے اور قطعی ٹولز اس کی تصدیق کرتے ہیں۔ Reverify بائٹس کو disassemble کر سکتا ہے، پیٹرنز اسکین کر سکتا ہے، executable فارمیٹس parse کر سکتا ہے، strings نکال سکتا ہے، کوڈ emulate کر سکتا ہے اور wire formats کا معائنہ کر سکتا ہے۔ جانچے گئے دعوے کو مشاہدہ شدہ شواہد کے ساتھ تین میں سے ایک نتیجہ ملتا ہے: VERIFIED، REFUTED، یا INCONCLUSIVE۔

Reverify صرف مجاز ریورس انجینئرنگ کے لیے استعمال کریں، جیسے malware analysis، CTF challenges، interoperability research، اور وہ software جس کے آپ مالک ہوں یا جس کے معائنے کی آپ کو اجازت حاصل ہو۔

اہم خصوصیات

  • قطعی تصدیق: دعووں کا فیصلہ AI سے تیار کردہ وضاحت قبول کرنے کے بجائے target binary میں مشاہدہ شدہ بائٹس کی بنیاد پر کیا جاتا ہے۔
  • Executable parsing: PE، ELF، اور Mach-O فائلوں کا معائنہ کریں، جس میں معاونت دستیاب ہونے کی صورت میں architecture، entry point، sections، imports، اور exports شامل ہیں۔
  • Disassembly اور emulation: x86، x64، ARM، اور ARM64 کوڈ کا تجزیہ کریں؛ صلاحیتیں فعال backends کے لحاظ سے مختلف ہوتی ہیں۔
  • Pattern اور string analysis: ?? wildcards کے ساتھ AOB patterns اسکین کریں اور offsets سمیت ASCII یا UTF-16LE strings نکالیں۔
  • Protocol inspection: schema کی ضرورت کے بغیر Protobuf اور TLV data decode کریں۔
  • Reverse-engineering utilities: Frida hooks تیار کریں، aligned hex dumps بنائیں، اور binary diffs یا patches تیار کریں۔
  • Agent integration: Claude Code اور Cursor جیسے ٹولز کے لیے Reverify کو Model Context Protocol server کے طور پر چلائیں۔
  • Pure-Python fallback: بنیادی package، Ghidra یا لازمی native analysis engines کے بغیر کام کرتا ہے۔

تنصیب اور سیٹ اپ

Pure-Python Core انسٹال کریں

PyPI سے CLI اور MCP server انسٹال کریں:

pip install reverify

یہ pure-Python core فراہم کرتا ہے اور آغاز کرنے کا آسان ترین طریقہ ہے۔

اختیاری Mature Engines انسٹال کریں

بہتر parsing، disassembly، اور emulation کے لیے full extra انسٹال کریں:

pip install "reverify[full]"

Full installation Reverify کو disassembly کے لیے Capstone، CPU emulation کے لیے Unicorn، اور PE، ELF، اور Mach-O parsing کے لیے LIEF استعمال کرنے کے قابل بناتی ہے۔ اگر یہ packages دستیاب نہ ہوں تو Reverify اپنی pure-Python implementation پر واپس آ جاتا ہے۔

دیکھیں کہ کون سے engines فعال ہیں:

reverify backends

Checkout سے براہِ راست چلائیں

Repository کو package انسٹال کیے بغیر بھی استعمال کیا جا سکتا ہے:

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

بنیادی Binary Triage

فائل format اور architecture معلوم کرنے، sections کا معائنہ کرنے، اور نمایاں strings کی رپورٹ حاصل کرنے کے لیے auto command سے آغاز کریں:

reverify auto sample.bin --json

--json option اس وقت مفید ہے جب کسی دوسرے script، CI job، یا AI agent کو نتیجہ programmatically استعمال کرنا ہو۔

مرکوز executable parsing کے لیے PE، ELF، یا Mach-O فائلوں کے ساتھ parse استعمال کریں:

reverify parse sample.bin --json

Windows executable کے لیے dedicated PE parser، PE32 یا PE32+ headers، imports، اور exports کا معائنہ کر سکتا ہے:

reverify parse-pe sample.exe --json

Raw Bytes کو Disassemble کرنا

disasm command hexadecimal machine code decode کر سکتی ہے۔ یہ مثال ایک مختصر x86-64 sequence کا تجزیہ کرتی ہے:

reverify disasm 90505831C0C3 --arch x86_64

Disassembly یہ جانچنے کے لیے مفید ہے کہ آیا تجویز کردہ instruction sequence بائٹس سے مطابقت رکھتی ہے۔ Reverify binary section سے code بھی disassemble کر سکتا ہے، جس سے دعووں کو الگ تھلگ، ماڈل سے تیار کردہ تشریح کے بجائے file contents سے منسلک کیا جا سکتا ہے۔

Verification Loop استعمال کرنا

Reverify claim بائنری کے بارے میں ایک structured hypothesis ہوتا ہے۔ verify command دعوے کا جائزہ لیتی ہے اور toolkit کے مشاہدہ کردہ شواہد کے ساتھ اس کا status واپس کرتی ہے۔

Instruction Sequence کی تصدیق کریں

درج ذیل claim یہ جانچتی ہے کہ آیا 4096 offset پر موجود بائٹس کسی ایسے function prologue میں decode ہوتی ہیں جو push، mov، اور sub سے شروع ہوتا ہے:

reverify verify sample.bin --claim '{
  "kind": "instructions",
  "offset": 4096,
  "mnemonics": ["push", "mov", "sub"],
  "note": "function prologue"
}'

Reverify صرف مجوزہ تشریح دہراتا نہیں۔ یہ متعلقہ بائٹس کو پڑھ کر disassemble کرتا ہے، پھر رپورٹ کرتا ہے کہ مطلوبہ mnemonic sequence کی تائید ہوتی ہے یا نہیں۔

Emulated Result کی تصدیق کریں

آپ emulator میں machine code چلا کر اور اس کے نتیجے میں registers کی جانچ کر کے behavioral claim بھی test کر سکتے ہیں:

reverify verify - --claim '{
  "kind": "emulate_result",
  "code": "b805000000b90300000001c8c3",
  "arch": "x86",
  "expect_registers": {"eax": 8}
}'

یہ تصدیق کرتا ہے کہ فراہم کردہ routine eax کو 8 کے برابر چھوڑتی ہے۔ یہ ماڈل کی اس وضاحت کو قبول کرنے سے زیادہ مضبوط جانچ ہے کہ instructions بظاہر کیا compute کرتی ہیں۔

دستیاب Claim Types

Reverify درج ذیل claim kinds کو support کرتا ہے:

  • bytes_at مخصوص مقام پر موجود بائٹس کو چیک کرتا ہے۔
  • pattern_present یہ چیک کرتا ہے کہ بائٹس کا پیٹرن موجود ہے یا نہیں۔
  • string_present بائنری میں کسی اسٹرنگ کی موجودگی چیک کرتا ہے۔
  • instructions تجویز کردہ ہدایات کی ترتیب کو چیک کرتا ہے۔
  • emulate_result ایمولیشن کے بعد رجسٹرز کے متوقع نتائج کو چیک کرتا ہے۔
  • protobuf_field Protobuf فیلڈ کے دعوے کو چیک کرتا ہے۔
  • pe_import PE امپورٹ کے دعوے کو چیک کرتا ہے۔

بیچ تصدیق اور CI گیٹنگ

بڑی تحقیقات کے لیے متعدد دعوے ایک JSON فائل میں رکھیں اور انہیں ایک ساتھ جانچیں:

reverify verify sample.bin --claims-file claims.json

اگر کسی بھی دعوے کی تردید ہو جائے تو CLI غیر صفر اسٹیٹس کے ساتھ بند ہوتا ہے۔ یہ رویہ اسے CI پائپ لائنز اور خودکار ایجنٹ ورک فلو کے لیے موزوں بناتا ہے: دوبارہ تشکیل دی گئی ساخت یا روٹین کو شائع کرنے یا اگلے مرحلے میں استعمال کرنے سے پہلے مسترد کیا جا سکتا ہے۔

ایک عملی ورک فلو یہ ہے:

  1. ابتدائی شواہد جمع کرنے کے لیے auto، parse، strings، یا disasm استعمال کریں۔
  2. کسی تجزیہ کار یا ماڈل سے محدود دائرۂ کار والے دعوے تشکیل دلوائیں۔
  3. متعلقہ دعوے ایک JSON فائل میں محفوظ کریں۔
  4. verify چلائیں اور ہر REFUTED یا INCONCLUSIVE نتیجے کا جائزہ لیں۔
  5. دوبارہ تشکیل کو بہتر بنائیں اور اس وقت تک عمل دہرائیں جب تک حمایت یافتہ دعوے مشاہدہ شدہ شواہد پر مبنی نہ ہو جائیں۔

اضافی تجزیاتی کمانڈز

Reverify میں متعدد مخصوص کمانڈز شامل ہیں جو تصدیقی عمل میں معاون ثابت ہو سکتی ہیں:

  • پیٹرن اسکیننگ: عین بائٹس اور ?? وائلڈ کارڈز پر مشتمل AOB تلاش کے لیے pattern-scan استعمال کریں۔
  • اسٹرنگ اخذ کرنا: ASCII اور UTF-16LE اسٹرنگز تلاش کرنے اور ان کے آفسیٹس محفوظ رکھنے کے لیے strings استعمال کریں۔
  • مائیکرو ایمولیشن: CPU رجسٹر اور اسٹیک کے رویے کا معائنہ کرنے کے لیے emulate استعمال کریں۔
  • وائر فارمیٹ کی تشریح: اسکیما کے بغیر ڈیٹا کے تجزیے کے لیے decode-protobuf یا decode-tlv استعمال کریں۔
  • Frida انضمام: انٹرسیپٹر اسکرپٹ تیار کرنے کے لیے gen-hook استعمال کریں۔
  • خام معائنہ: بائنری ڈیٹا کا منظم اور ہم محور منظر دیکھنے کے لیے hexdump استعمال کریں۔
  • تبدیلی کا تجزیہ: بائنری اختلافات اور پیچ تیار کرنے کے لیے diff-patch استعمال کریں۔
  • حدود کا آڈٹ: دفاعی فائل سسٹم اور SSRF حدود کی جانچ کے لیے audit-boundary استعمال کریں۔

دوبارہ تشکیل کے ذریعے عمل مکمل کرنا

reconstruct کمانڈ Reverify کے بند لوپ والے طریقۂ کار کو نافذ کرتی ہے: ایک ماڈل دعوے پیش کرتا ہے، قطعی ٹولز ان کا فیصلہ کرتے ہیں، اور یہ عمل ایک مستند نتیجے کی جانب تکرار کرتا ہے۔ یہ کسی ماڈل سے مکمل ساخت یا الگورتھم مانگنے اور اس کے پہلے جواب کو مستند سمجھنے سے بہتر ہے۔

قابلِ اعتماد نتائج کے لیے دعووں کو مختصر اور قابلِ آزمائش رکھیں۔ عین بائٹس، مختصر ہدایات کی ترتیب، درآمد شدہ فنکشن، یا رجسٹر کے نتیجے سے متعلق دعوے کی جانچ اور نظرثانی پورے بائنری کے بارے میں وسیع بیانیے کے مقابلے میں آسان ہوتی ہے۔

Reverify کو AI ایجنٹس سے جوڑنا

ریپوزٹری چیک آؤٹ سے MCP سرور اس طرح شروع کریں:

python reverify/mcp_server.py

اس کے بعد آپ Claude Code یا Cursor جیسے MCP سے مطابقت رکھنے والے کلائنٹ کو سرور شروع کرنے کے لیے ترتیب دے سکتے ہیں۔ ایجنٹ براہِ راست Reverify کے پارسنگ، ڈس اسمبلی، اسکیننگ، اور تصدیقی ٹولز استعمال کر سکتا ہے۔

MCP ٹول re_verify_claim ایجنٹس کے لیے یہی تصدیقی لوپ فراہم کرتا ہے۔ اس سے ایجنٹ کسی مفروضے کو جمع کرا سکتا ہے، VERIFIED، REFUTED، یا INCONCLUSIVE نتیجہ حاصل کر سکتا ہے، اور نتیجہ بتانے سے پہلے اپنے تجزیے پر نظرثانی کر سکتا ہے۔

اعلیٰ درجے کی تجاویز

  • پہلے فعال بیک اینڈز چیک کریں: تجزیے سے پہلے reverify backends چلائیں تاکہ معلوم ہو کہ Capstone، Unicorn، اور LIEF دستیاب ہیں یا نہیں۔
  • JSON آؤٹ پٹ کو ترجیح دیں: جب نتائج کو اسکرپٹس، ایجنٹس، یا CI سسٹمز پارس کریں گے تو --json استعمال کریں۔
  • مشاہدے کو تشریح سے الگ رکھیں: اعلیٰ سطحی وضاحت لکھنے سے پہلے آفسیٹس، بائٹس، ڈی کوڈ شدہ ہدایات، اور رجسٹر اسٹیٹس ریکارڈ کریں۔
  • غیر فیصلہ کن نتائج کو دیانت داری سے لیں: INCONCLUSIVE نتیجہ تصدیق نہیں ہوتا۔ مزید شواہد جمع کریں یا دعوے کا دائرۂ کار محدود کریں۔
  • متعلقہ دعووں کو بیچ میں چلائیں: ساختی اور رویّاتی جانچ کو claims فائل میں رکھیں تاکہ ایک مسترد شدہ مفروضہ خودکار دوبارہ تشکیل کو روک سکے۔
  • رویّاتی دعووں کے لیے ایمولیشن استعمال کریں: اگر دعویٰ یہ بتاتا ہے کہ کوئی روٹین کیا حساب کرتی ہے تو صرف ڈس اسمبلی پر انحصار کرنے کے بجائے متوقع رجسٹر اسٹیٹ کی تصدیق کریں۔
  • پورٹیبلٹی کے لیے خالص Python فال بیک استعمال کریں: بنیادی پیکیج سے آغاز کریں، پھر جب پختہ مقامی انجن درکار ہوں تو reverify[full] انسٹال کریں۔

نتیجہ

Reverify اہم دعووں کو بائنری کے خلاف قطعی جانچ سے گزار کر AI کی معاونت سے ہونے والی ریورس انجینئرنگ کو زیادہ قابلِ دفاع بناتا ہے۔ اس کا CLI فوری جائزہ، پارسنگ، ڈس اسمبلی، پیٹرن اسکیننگ، ایمولیشن، اور بیچ تصدیق کی سہولت دیتا ہے، جبکہ اس کا MCP سرور AI ایجنٹس کو اسی شواہد پر مبنی ورک فلو تک رسائی فراہم کرتا ہے۔ نتیجہ پُراعتماد قیاس آرائی کے بجائے مشاہدہ شدہ بائٹس پر مبنی تجزیہ ہے۔

Reverify MIT لائسنس کے تحت ہے اور PyPI سے دستیاب ہے۔