---
title: Ваше первое исследование в области реверс—инжиниринга - REA
url: https://rea.tools/ru/first-investigation/
---

[Главная](https://rea.tools/ru/) / Ваше первое расследование

# Узнайте, куда отправляются экспортированные заметки.

Используйте REA для проверки небольшого приложения, нажмите на кнопку "Экспорт заметок" и проверьте одну деталь самостоятельно.

Приведенный пример · Node.js и npm · Ваш кодирующий агент

## 1. Подключите своего агента к REA.

Используйте средство кодирования, такое как Claude Code, Codex или Cursor. Вам понадобятся Node.js и npm; в [руководстве по установке перечислены поддерживаемые версии](https://rea.tools/get-started/).

Ваш кодирующий агент

Установи REA и подключи его к этому ИИ-помощнику с помощью npx rea-agents@latest setup. Сначала покажи план изменений и дождись моего одобрения. Затем проверь установку.

Или запустите эту команду в своем терминале:

`npx rea-agents@latest setup`

Ознакомьтесь с планом, одобрите настройку, затем перезапустите свой агент. Вы уже подключены? Продолжение ниже.

## 2. Спросите, где записан CSV

Примером может служить приложение Electron, состоящее из шести файлов, с кнопкой **экспорта заметок**. Ваш агент может проверить его код, не устанавливая и не запуская Electron.

Ваш кодирующий агент

Загрузите https://rea.tools/examples/notes-example.zipв новую папку с примерами и распакуйте ее. Используйте REA, чтобы узнать, что происходит, когда я нажимаю "Экспортировать заметки". Покажите, где notes.csvчто записано, какие поля оно содержит, а также соответствующие файлы и строки.

Ваш агент загружает файлы и передает распакованную папку REA для проверки.

[Пример загрузки ZIP-файла](https://rea.tools/examples/notes-example.zip)

Если ваш агент не может загрузить файлы, распакуйте этот архив самостоятельно. Укажите путь к папке `notes-example` и задайте тот же вопрос об экспорте.

## 3. Следуйте ответу обратно к коду

Ищите краткое объяснение со ссылками на файлы и строки:

> Кнопка отправляет сообщение `notes:export`. Основной процесс форматирует заметки как CSV и записывает `notes.csv` в папку загрузок пользователя. Это столбцы `id` и `title`.

От кнопки до устройства записи файлов

1. Страница · renderer.js

   При экспорте заметок

   вызывается функция `notes.exportCsv()`.
2. Мост · preload.js

   `notes:export`

   в основной процесс отправляется именованное сообщение.
3. Обработчик · main.js

   Write notes.csv

   Вызывает средство форматирования в `csv.js` и записывает файл.

Статический анализ REA сопоставляет сообщение с его обработчиком. Адресат считывается из кода.

main.js · строки 8-12[Исходный код](https://rea.tools/examples/notes-electron/main.js)

```
ipcMain.handle("notes:export", () => {
  const destination = path.join(app.getPath("downloads"), "notes.csv");
  writeFileSync(destination, toCsv(notes), "utf8");
  return destination;
});
```

Путь к файлу, средство форматирования и вызов записи находятся в этом обработчике вместе. Попросите вашего агента показать эти строки, если в его ответе они отсутствуют.

[Посмотрите полную трассировку кода и записанный результат](https://rea.tools/guides/javascript/#follow) REA.

## 4. Проверьте прогноз

Столбцы CSV разделены запятой. Что происходит, когда заголовок заметки сам по себе содержит запятую или кавычки?

Ваш кодирующий агент

Спрогнозируйте CSV для заметки с идентификатором 1 и заголовком Hello, "REA". Затем запустите toCsvпрограмму форматирования примера сNode.js, чтобы проверить это. Покажите прогноз и фактический результат.

Ожидаемый результат форматирования

```
id,title
1,"Hello, ""REA"""
```

Заголовок остается в одном поле, заключенном в кавычки; каждая кавычка удваивается. При этом выполняется прямая проверка форматирования с помощью Node.js.

Проведите проверку самостоятельно

Откройте терминал в распакованной папке `notes-example`:

macOS / Linux · Bash / Zsh

```
node <<'JS'
const { toCsv } = require('./csv.js');
process.stdout.write(toCsv([{ id: 1, title: 'Hello, "REA"' }]));
JS
```

Windows · PowerShell

```
@'
const { toCsv } = require('./csv.js');
process.stdout.write(toCsv([{ id: 1, title: 'Hello, "REA"' }]));
'@ | node
```

## 5. Задайте еще один вопрос

Попробуйте продолжить тот же разговор:

> Что произойдет, если файл не может быть записан? Вернитесь на страницу, указанную в сообщении об ошибке.

Или предоставьте своему агенту собственное приложение и спросите об одной кнопке, файле или поведении.

- [Как Notion копирует текст и HTML](https://rea.tools/ru/showcase/notion/) с помощью функции буфера обмена в встроенном приложении Electron.
- [Как DX-Ball рассчитывает расположение стереозвука](https://rea.tools/ru/showcase/dx-ball/), читайте в оригинальных инструкциях и проверках реконструкции.
- [Устраните неполадки в программе установки или аналитическом](https://rea.tools/ru/faq/#troubleshooting) обновлении REA и проверьте соединение, если оно не работает.
