A64Dbg
A64Dbg — это отладчик на уровне ассемблера для архитектур arm, arm64, x86 и x64. Он работает на macOS, iOS, Linux и Android и похож на OllyDbg и X64Dbg.
Также A64Dbg включает в себя отладчик виртуализации (uvmdbg) на основе UraniumVM для macOS, iOS и Android.
Поддерживаются следующие платформы:
Поддерживаемые платформы для отладки:
|Локальная|Удаленная Android|Удалённая iOS| |-|-|-|-| |Windows|Нет|Да|Нет| |Intel Linux|Да|Да|Нет| |ARM Linux|Да|Да|Нет| |Intel macOS|Да|Да|Да| |ARM macOS|Да|Да|Да|
GUI Runtime основан на Qt. GUI Controls основан на X64Dbg. DebugEngine основан на LLDB. Assembler/Disassembler основан на LLVM. Decompiler основан на RetDec. Script основан на Python. AnalyzeEngine разработан YunYoo. UVMEngine разработан YunYoo.
Пользователи macOS могут настроить удаленную отладку через меню «Preference».
Пользователи Windows могут настроить удаленную отладку через пункты меню MainMenu/Options/Preference.
Пользователи iOS поддерживают только конфигурацию IP реального устройства iDevice.
Пользователи Android поддерживают только конфигурацию 127.0.0.1 IP.
Плагин DevTool:
Официальные плагины:
Отладчик сервера:
ssh root@ip dpkg -i --force-overwrite /tmp/a64dbg-server.deb```
* Пользователи uvmdbg для iOS могут установить [](https://gitee.com/geekneo/A64Dbg/blob/master/a64dbg-server.uvm.deb) на iDevice с помощью команд:
```scp A64Dbg/a64dbg-server.uvm.deb root@ip:/tmp/
ssh root@ip dpkg -i --force-overwrite /tmp/a64dbg-server.uvm.deb```
* Пользователи Android могут отправить a64dbg-server-arm64 на устройство Android с помощью команд:
```adb push A64Dbg/a64dbg-server-arch /data/local/tmp/
adb shell chmod -R 755 /data/data/local/tmp/a64dbg-server-arch/
cd /data/local/tmp/a64dbg-server-arch; ./lidadbg-server```
```adb forward tcp:30333 tcp:30333```
* Пользователи uvmdbg для Android могут отправить a64dbg-server-arm64.uvm на устройство Android и отключить SELinux с помощью команд:
```adb push A64Dbg/a64dbg-server-arch.uvm /data/local/tmp/
setenforce 0```
Текущий статус:
|Платформа|Описание|Выпущено|Бизнес-модель|
|-|-|-|-|
|Локальный ARM macOS/Simulator|Отладка ARM macOS и его iOS Simulator|Да|Бесплатно|
|Удаленный iOS|Традиционная удаленная отладка iOS на основе lldb-server/debugserver|Да|Бесплатно|
|Удаленный Android|Традиционная удаленная отладка Android на основе lldb-server|Да|Бесплатно|
|Локальный VP iOS Simulator|Кроссплатформенная отладка на основе arm64 переводчика, например, отладка программы arm64 iOS на x64 macOS|Нет|Покупка|
|Удаленный VP Android Emulator|Кроссплатформенная отладка на основе arm64 переводчика, например, отладка программы arm64 Android на x64 Windows|Нет|Покупка|
|Локальный UraniumVM|Отладка на основе [UraniumVM-V8](https://gitee.com/yunyoo/UraniumVCPU/tree/master/mac/arm64), например, отладка кода arm64 на x64 рабочем столе|Да|Покупка|
|Удаленный UraniumVM iOS|Удаленная отладка на основе [UraniumVM-iOS](https://gitee.com/yunyoo/UraniumVCPU/tree/master/ios/arm64). Код выполняется на iOS UraniumVM виртуальной машине|Да|Покупка| **Remote UraniumVM Android**
На основе UraniumVM-V8 (https://gitee.com/yunyoo/UraniumVCPU/tree/master/android) реализована удалённая отладка, выполнение кода происходит на Android UraniumVM виртуальной машине.
**Follow us for update or bug report:**
|Platform|Account|
|-|-|
|Email|liubaijiang@yunyoo.cn|
|公众号|江哥说安全|
|头条抖音|刘柏江/江哥说安全|
|微博|刘柏江VM|
|码云|https://gitee.com/geekneo/|
#### FAQ
1. **Q: a64dbg-server.deb поддерживает iOS версии?**
A: Встроенный debugserver поддерживает iOS >= 10.0, если не удаётся запустить, рекомендуется заменить на собственный debugserver.
2. **Q: Почему при первом использовании Attaching требуется много времени?**
A: При первом использовании A64Dbg многие модули lldb ещё не переданы обратно на локальный компьютер, поэтому требуется больше времени для инициализации модулей отладки.
3. **Q: При вводе IP-адреса устройства Android Wifi для подключения к службе отладки появляется ошибка: Device «?.?.?».? not found. Как решить эту проблему?**
A: 1. В настройках отладчика укажите полный путь adb (рекомендуется использовать adb из Android SDK), затем введите IP-адрес устройства Android 127.0.0.1 в поле адреса, нажмите Save для сохранения конфигурации.
2. После настройки каждый запуск A64Dbg автоматически устанавливает переадресацию портов, и вам больше не нужно настраивать вручную. Просто убедитесь, что служба отладки на вашем мобильном устройстве всегда работает.
4. **Q: Я скачал macOS версию с gitee, но при запуске получаю сообщение о повреждённом пакете. Что делать?**
A: 1. Используйте команду codesign --force --deep --sign - /path/to/A64Dbg.app для повторной подписи, а затем запустите приложение, удерживая клавишу Control, чтобы разрешить запуск.
2. Рекомендуется использовать git clone --depth=1 для загрузки, так вы сможете обновлять программу через git pull, это удобно, быстро и снижает вероятность ошибок.
5. **Q: Какая команда используется для пересылки портов в программе usbmuxd для iOS?**
A: Рекомендуется использовать https://github.com/TestStudio/usbmuxd/blob/master/python-client/tcprelay.py или создать скрипт на основе этого интерфейса и настроить его для A64Dbg.
6. **Q: На платформе Windows при запуске lidadbg-server возникает ошибка. В чём причина?**
A: Если вы загрузили A64Dbg с помощью git clone, при выполнении службы на мобильном устройстве может возникнуть ошибка:
angler:/data/local/tmp/a64dbg-server-arm # ./lidadbg-server
/system/bin/sh: ./lidadbg-server: No such file or directory
Ошибка вызвана тем, что git добавил символ '\r', что делает sh неспособным обработать этот скрипт. Решение:
git config --global core.autocrlf input, запретить добавление символа '\r'.
7. **Q: На macOS при запуске сеанса отладки возникает ошибка debugserver not found.**
A: На macOS, если вы поместите A64Dbg в каталог AppTranslocation, при запуске сеанса отладки может появиться ошибка:
/bin/sh: debugserver: inaccessible or not found
Решение: Переместите A64Dbg из каталога AppTranslocation в другие каталоги, такие как Applications, Documents, Downloads и т. д., которые не являются песочницей.
8. **Q: После запуска режима Attach/Launch в режиме виртуализации UraniumVM нет реакции. Почему?**
A: Режим виртуализации отладки отличается от LLDB, который контролирует целевой процесс через Ptrace. Вместо этого он создаёт TCP-канал для взаимодействия с A64Dbg для отладки контекста. Если возникает проблема без реакции, выполните следующие действия по одному:
1. Убедитесь, что SELinux на телефоне выключен: setenforce 0;
2. Проверьте, находятся ли телефон и рабочий стол в одной локальной сети: adb shell ping desktop-ipv4;
3. Убедитесь, что у целевого Debugee на телефоне есть сетевые разрешения: если нет, можно добавить их, изменив конфигурацию системы;
4. При первом запуске A64Dbg убедитесь, что разрешено использование сетевых коммуникаций: если нет, добавьте A64Dbg основную программу в белый список брандмауэра.
#### Screenshot
*start*
*config*
*attach*
*cpu*
*callstack*
*threads*
*modules*
*log*
*fileeditor*
*filediser*
*database*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )