Мэдээ

Дурын програмыг AI-аар задлан шинжилнэ: "REA" төсөл код бичигч агентуудад урвуу инженерийн супер чадвар олголоо

TOGTOKHTOGTOKH·2026 оны аравдугаар сарын 10·1 үзсэн·
Дурын програмыг AI-аар задлан шинжилнэ: "REA" төсөл код бичигч агентуудад урвуу инженерийн супер чадвар олголоо

Хэрэв та өөр нэг аппликейшны ажиллах зарчим, эсвэл аль нэг сонирхолтой функцийг яг яаж шийдсэнийг сонирхож байсан бол өмнө нь Ghidra, Hopper зэрэг хүнд нүсэр reverse engineering хэрэгслүүдийг нээж, ассамблер эсвэл хагас дутуу декомпил хийсэн C код дунд олон цаг, өдрөөр суух шаардлагатай болдог байв.

Гэвч сүүлийн 24 цагийн дотор нээлттэй болж, хөгжүүлэгчдийн нийгэмлэг болон Hacker News-ийн тэргүүн эгнээнд шуугиан тарьж буй REA (Reverse Engineer Anything) төсөл энэ бүхнийг нэг мөсөн өөрчиллөө. Ердөө нэг CLI коммандаар та өөрийн ашигладаг дурын AI код бичигч агентад декомпилятор, статик аналитикын бүрэн эрхийг олгож, хүссэн програмынхаа дотоод логикийг задлуулах боломжтой болж байна.

Зөвхөн код бичих биш, кодыг "задлах" агент

Өнөөдөр ихэнх хөгжүүлэгчид Claude Code, Cursor, Windsurf, GitHub Copilot зэрэг хэрэгслүүдийг шинэ функц бичих, алдаа засах зэрэгт ашигладаг. Гэвч тэдэнд хаалттай binary (.exe, Mach-O, ELF) эсвэл багцалсан Electron/JavaScript аппликейшн өгөхөд LLM-үүд зүгээр л өнгөц харагдах string, файлын нэрсээс "таамаг" дэвшүүлж, хийсвэр төсөөлөлдөө төөрөх нь түгээмэл байдаг.

REA төсөл энэ асуудлыг Model Context Protocol (MCP) стандартаар шийдсэн байна. Энэ нь AI агентыг бодит шинжилгээний хүчирхэг багажуудтай шууд холбодог гүүр юм.

Та өөрийн агентдаа:

"Энэ application дотор файл экспортлохдоо өгөгдлийг хэрхэн хөрвүүлж байгааг REA-ээр шалгаад, яг тэр логикийг нь манай төсөлд зориулж TypeScript болон SQLite дээр бичээд өг"

гэж хэлэхэд л хангалттай.

REA хэрхэн ажилладаг вэ?

Төслийг эхлүүлэхэд тун энгийн: хөгжүүлэгч npx rea-agents setup коммандыг ажиллуулахад REA автоматаар машин дээрх Claude Code, Cursor, Codex, Gemini CLI, Windsurf, Devin зэрэг 12 төрлийн код бичих агентыг илрүүлж, тохиргоог нь нөөцлөн MCP серверийг холбодог.

Агент даалгавар аваад дараах шат дарааллаар ажилладаг:

  1. Зорилтот файлыг таних (open_binary, binary_overview): Файлын архитектур, хэлбэр, хамаарлуудыг тодорхойлно.
  2. Утга учиртай түлхүүр мөрүүдийг илрүүлэх (search_strings, search_procedures): Програмын доторх текст, API дуудалтууд, функцийн нэрсийг олно.
  3. Холбоосыг кодтой уях (xrefs, procedure_callers): Олдсон сэжмүүдийг бодит санах ойн хаяг болон функцүүдтэй холбоно.
  4. Ажиллах урсгалыг сэргээх (get_call_graph): Програмын логик дараалал, салаалсан бүтцийг графикал хэлбэрт оруулна.
  5. Декомпиляци хийж цэвэр код гаргах (procedure_pseudo_code): Чухал функцүүдийг псевдокод, эсвэл өндөр түвшний код болгон хөрвүүлж уншина.

REA-ийн нэг давуу тал нь Electron, ASAR багц, цэвэр JavaScript аппликейшнүүдийн хувьд ямар ч нэмэлт native хөдөлгүүргүйгээр шууд статик аналитик хийдэг. Харин уугуул (native) binary файлуудын хувьд системд суусан Hopper, Ghidra, эсвэл IDA-г арын горимд ажиллуулдаг байна.

"Таамаглах биш, нотлох баримтад тулгуурлах"

REA-ийн гол философи нь LLM-д хийсвэр дүгнэлт хийлгэхгүй байх явдал юм. Төслийн бүтэц хариу өгөхдөө дараах дөрвөн үндсэн талбарыг үргэлж баримталдаг:

  • Evidence (Баримт): Олдсон функцийн нэр, байт хаяг (byte offset), ассамблер заавар.
  • Recovered graph (Сэргээгдсэн бүтэц): Функцүүд хоорондоо хэрхэн холбогдож дуудагдсан дараалал.
  • Limitations (Хязгаарлалт): Аналитик хэрэгсэл яг хаана хүрээд гацсан, аль хэсэг нь obfuscate хийгдсэн бэ гэдгийг тодорхойлох.
  • Unknowns (Тодорхойгүй хэсэг): Агентын 100% баталж чадахгүй байгаа зүйлс.

Хамгийн чухал нь шинжилгээний бүх процесс бүрэн таны локал машин дээр явагдах тул шалгаж буй аппликейшн болон кодын өгөгдөл гаднын ямар ч сервер рүү задардаггүй.

Хөгжүүлэгчдэд ямар ач холбогдолтой вэ?

Энэхүү хэрэгсэл гарснаар хөгжүүлэлтийн практикт хэд хэдэн том өөрчлөлт гарч байна:

  • Бичил инженерчлэл (Micro-engineering) хурдсах: Зах зээл дээрх том програмууд нарийн тооцоолол, алгоритмыг хэрхэн хийснийг мэдэхийн тулд баримтжуулалт хүлээж суух шаардлагагүй болов.
  • Legacy системийг шинэчлэх: Эх код нь гээгдсэн, эсвэл баримтжуулалтгүй болсон хуучин .NET, C++ модулиудыг орчин үеийн stack (TypeScript, Go, Rust) рүү хөрвүүлэхэд агентууд цаг алдалгүй тусална.
  • Аюулгүй байдлын аудит: Гуравдагч талын SDK, сангууд цаанаа ямар network хүсэлт илгээж, нууц өгөгдлийг хааш нь явуулж байгааг хялбархан илрүүлэх боломж бүрдлээ.

Ёс зүй ба хамгаалалтын асуудал

Мэдээж ийм хүчирхэг хэрэгсэл нээлттэй болсон нь хэлэлцүүлэг дагуулж байна. Олон хөгжүүлэгчид коммерсиал бүтээгдэхүүнүүдийг "vibe-coding" ашиглан хэдхэн цагийн дотор яг хуулбарлан хийж эхэлсэн талаар хуваалцаж байгаа бол зарим том LLM үйлчилгээ үзүүлэгчдийн safeguard системүүд reverse engineering хийх хүсэлтийг DMCA болон кибер аюулгүй байдлын эрсдэл гэж үзэн хааж эхэлсэн тохиолдол ч гарчээ.

Ямартай ч "REA" төсөл нь AI агентууд зөвхөн бэлэн код бичих биш, компьютерын шинжлэх ухааны хамгийн хүнд төрөлд тооцогддог урвуу инженерийн чиглэлд бодит үр дүн авчирч чаддагийг харуулсан том алхам боллоо. Хэрэв та орон нутгийн орчиндоо туршиж үзэхийг хүсвэл GitHub дээрх morluto/rea репозиторыг сонирхоод үзээрэй.

Эх сурвалж:

Сэтгэгдэл

Ачаалж байна...