REA може да мапира локалну JavaScript или Electron апликацију из датотека које имате право да прегледате, чак и када немате њено изворно стабло. Корисни резултат је траг доказа за једно понашање: који га модул излаже, где позив прелази границу процеса и које делове још треба засебно проверити. Овај водич користи актуелну документацију пројекта REA, проверену 14. октобра 2026. BIG CHANGE није покренуо REA над неком апликацијом.

Велика промена

  • Шта се променило: REA даје агенту за програмирање структурирану мапу модула, увоза, изворних мапа, рута и Electron IPC-а из достављеног директоријума апликације или ASAR архива. Сваки налаз може да упути на датотеке из којих потиче.
  • Зашто је важно: Програмер који истражује једну функцију може да прати именовани API или IPC канал кроз упаковану апликацију пре него што одлучи шта треба ручно да прегледа. Тако је питање уже, а доказе је лакше проверити.
  • На шта обратити пажњу: Статичке путање у коду су кандидати, а не доказ да их апликација заиста користи. Тврдња о конкретном понашању и даље захтева независно посматрање или тест на овлашћеној мети.

Пре почетка

Овај водич је намењен програмеру који поседује локалну JavaScript или Electron апликацију или има дозволу да је прегледа. Потребан вам је распаковани директоријум апликације или њена app.asar датотека и њена апсолутна путања. REA-ов манифест пакета наводи rea-agents верзију 6.4.0 и захтева Node.js 22.19 или новији у оквиру линије 22.x, 24.11 или новији у оквиру 24.x, или верзију 26 и новије. Потребан је и npm. На Linux-у је за REA-ову статичку JavaScript/Electron анализу потребан и procps-компатибилан ps за REA-ов PATH ради провере власништва над процесима, како објашњава водич за инсталацију. То су захтеви за окружење у ком се покреће REA, одвојени од захтева за покретање саме циљне апликације.

За статички JavaScript поступак нису потребни Hopper, Ghidra, IDA, прегледач нити покренут Electron процес. Ти алати припадају другим REA поступцима. Проверите да ли имате право да прегледате циљ и сачувајте копију изворних датотека како бисте тачно утврдили који је артефакт дао резултат. Користите званични morluto/rea репозиторијум или његов повезани npm пакет за инсталацију; репозиторијум сличног имена не доказује порекло.

1. Подесите REA или користите једнократни CLI

За повезаног агента за програмирање, документована команда за подешавање гласи:

Terminal
npx rea-agents setup

Прегледајте предложене измене конфигурације агента, одобрите оне које желите и затим поново покрените агента. Ако вам треба само преглед из терминала, документована команда испод покреће пакет за то извршавање. @latest бира издање актуелно у тренутку покретања; забележите разрешену верзију уз доказе јер се детаљи излаза могу променити. Верзија 6.4.0 наведена изнад је она коју је манифест пројекта приказао при провери овог чланка 14. октобра.

2. Анализирајте достављене датотеке

Замените пример путањом до апсолутне путање овлашћеног директоријума апликације или ASAR архива:

Terminal
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json > app-evidence.json

Водич за CLI упозорава да потпуни Evidence може бити веома велик. Сачувајте га у датотеку, а затим прочитајте сажетак или приказ изабраног модула. Немојте лепити цео резултат у упит. Ако команда не успе, сачувајте грешку и путању циља ради дијагнозе; нулти статус излаза и даље може да значи делимичну покривеност, упозорења или нерешене налазе. У Windows-у README приказује путању попут "D:/apps/example".

Референца о реконструкцији артефаката наводи да ова операција чита изабране датотеке као податке, без покретања апликације. Пописује путање артефаката и њихове дигесте, анализира доступни JavaScript и TypeScript и пријављује могуће улазне тачке, увозе, изворне мапе, руте, мрежне крајње тачке, везе Electron preload-а и renderer-а, contextBridge API-је, IPC позиве и руковаоце, као и захтеве за изворне додатке. Очекује се Evidence запис са графом, статичким Electron сажетком, покривеношћу и ограничењима. Пријављени .node везу треба прегледати; она не декодира тај изворни модул.

3. Пратите једну конкретну функцију

Изаберите функцију чији назив можете да пронађете, на пример радњу менија или изложену API методу. Забележите назив који види корисник и у резултату REA потражите одговарајући модул, дословни IPC канал или руту. Пратите наведене изворне локације редом: позив renderer-а или странице, preload мост, IPC пренос, одговарајући руковалац у главном процесу, па датотеку или сервисну операцију коју он позива. REA-ов Electron CSV пример приказује овај образац са notes.exportCsv(), notes:export канал и писање у главном процесу. Ти називи припадају примерној апликацији; у вашој мети биће другачији.

За сваку везу забележите дигест артефакта, путању датотеке, локацију и шта код заиста показује. Разликујте дословни канал упарен са једним руковаоцем од израчунатог канала или нејасног упаривања. Пре него што одсуство модула или руковаоца сматрате доказаним, проверите поља покривености и ограничења. Према REA-у, неисправне или недоступне датотеке, недостајући пратећи садржај ASAR-а, неразрешени изрази и ограничен обим анализе могу оставити везе непознатим. Изворна мапа може открити имена оригиналног изворног кода, али алат не обећава да ће обезбедити оригинално стабло кода.

4. Независно проверите понашање

Изведите једну оповргљиву тврдњу из статичког трага, на пример: „ова радња позива овај канал, а руковалац уписује ову врсту датотеке“. Затим у одобреном тестном окружењу изведите само ту радњу и непосредно посматрајте резултат: насталу датотеку, промењено стање или траг прикупљен у оквиру ваших овлашћења. Забележите верзију апликације, дигест артефакта, кораке теста и уочени резултат. Ако немате овлашћење да покренете апликацију, ограничите тврдњу на статичку путању у коду. REA-ов пример изричито наводи да се закључени пут може проверити снимањем током извршавања; сам статички граф не показује која је грана покренута.

Успели сте када други програмер може да пронађе исте изворне локације, разуме ограничења статичког упаривања и понови вашу уску проверу. Сам успешан аналитички позив не потврђује понашање током извршавања нити верну поновну имплементацију апликације.

Ако је резултат непотпун

Прво проверите да ли путања води до потпуног распакованог директоријума или ASAR архива и да ли су присутне све потребне пратеће .asar.unpacked датотеке. Прегледајте REA-ову покривеност и дијагностику: недостајући или неуспели извор значи да је стање непознато, а не да налаз не постоји. За велику апликацију, референца описује тачан избор --source-path датотека, али неизабране датотеке тада остају ван обима анализе. Ако је дословно подударање IPC-а нејасно или се канал израчунава, прегледајте наведене датотеке и сузите питање. Ако нејасноћа остане, наведите је у завршним напоменама.

REA је објављен под лиценцом MIT, али циљни софтвер и сваки спољни механизам за анализу имају сопствене лиценце и услове. Статичка анализа обрађује циљне датотеке локално. Ако налазе REA-а проследите агенту за програмирање, тај провајдер модела има своју политику података; немојте слати тајне или поверљив излаз док ваша организација то не одобри. Проверите услове и трошкове свог агента и сваког опционог механизма пре употребе. Поступак и верзија пакета проверени су 14. октобра 2026. и засновани су на документацији.