Git Product home page Git Product logo

a64dbg_unofficial_git's Introduction

A64Dbg

Description

An arm/arm64/x86/x64 assembly level debugger for macOS/iOS/Linux/Android like OllyDbg & X64Dbg.

An arm/arm64 virtualization debugger(uvmdbg) based on UraniumVM for macOS/iOS/Android.

Running desktop platform supports Windows/Linux/macOS.

The debugee platform supports macOS/Linux/iOS/Android.

Local Remote Android Remote iOS
Windows No Yes No
Intel Linux Yes Yes No
ARM Linux Yes Yes No
Intel macOS Yes Yes Yes
ARM macOS Yes Yes Yes
  • GUI Runtime is based on Qt;
  • GUI Controls is based on X64Dbg;
  • DebugEngine is based on LLDB;
  • Assembler/Disassembler is based on LLVM;
  • Decompiler is based on RetDec;
  • Script is based on Python;
  • AnalyzeEngine is developed by YunYoo;
  • UVMEngine is developed by YunYoo;

Debugger Version:

macOS user: use the Preference menu to configurate the remote debugging.
Windows user: use the MainMenu/Options/Preference to configurate the remote debugging.

iOS user: only support the real iDevice IP configuration.
Android user: only support the 127.0.0.1 IP configuration.

Plugin DevTool:

Official Plugin:

  • iPhone2Sim: one click helper for A64Dbg and Simulator, dependent on Textobot;
  • Python3: builtin adp python framework;

Debugger Server:

scp A64Dbg/a64dbg-server.deb root@ip:/tmp/
ssh root@ip dpkg -i --force-overwrite /tmp/a64dbg-server.deb
  • iOS uvmdbg user: install to iDevice
scp A64Dbg/a64dbg-server.uvm.deb root@ip:/tmp/
ssh root@ip dpkg -i --force-overwrite /tmp/a64dbg-server.uvm.deb
adb push A64Dbg/a64dbg-server-arch /data/local/tmp/
adb shell chmod -R 755 /data/local/tmp/a64dbg-server-arch/
cd /data/local/tmp/a64dbg-server-arch; ./lidadbg-server
adb forward tcp:30333 tcp:30333
adb push A64Dbg/a64dbg-server-arch.uvm /data/local/tmp/
setenforce 0

Current Status:

Platform Description Released Business Model
Local ARM macOS/Simulator ARM macOS及其iOS Simulator模拟器的本地调试 Yes Free
Remote iOS 基于lldb-server/debugserver的传统iOS远程调试 Yes Free
Remote Android 基于lldb-server的传统Android远程调试 Yes Free
Local VP iOS Simulator 基于arm64翻译器的跨架构调试,比如在x64 macOS调试arm64的iOS程序 No Buy
Remote VP Android Emulator 基于arm64翻译器的跨架构调试,比如在x64 Windows调试arm64的Android程序 No Buy
Local UraniumVM 基于UraniumVM-V8的本地调试,比如在x64桌面调试arm64的代码 Yes Buy
Remote UraniumVM iOS 基于UraniumVM-iOS的远程调试,执行代码跑在iOS UraniumVM虚拟机里面 Yes Buy
Remote UraniumVM Android 基于UraniumVM-V8的远程调试,执行代码跑在Android UraniumVM虚拟机里面 Yes Buy

Follow us for update or bug report:

Platform Account
Email [email protected]
公众号 刘柏江
头条抖音 刘柏江
微博 刘柏江VM
码云 https://gitee.com/geekneo/

FAQ

Q: a64dbg-server.deb支持的iOS版本?

A: 内置的debugserver支持iOS >= 10.0,如果无法运行,请替换成自己的debugserver;
Q: 为什么首次使用时Attaching要很久?

A: 首次使用A64Dbg时很多模块lldb还未传回本地生成副本,所以会花费更多时间初始化调试模块;
Q: 输入Android设备Wifi IP连接调试服务出现error: Device "?.?.?.?" not found该如何处理?

A: 1.在调试器设置界面设置adb全路径(建议使用android sdk里面的adb),然后在Android设备IP
   地址填入127.0.0.1(由于lldb的限制,目前Android只支持这个IP地址),点击Save保存配置;
   2.这样配置之后,每次启动A64Dbg就会自动设置端口转发,不再需要手动设置,你只需要保持手机
   调试服务端一直处于运行状态即可;
Q:通过gitee下载的macOS版本,运行提示包已损坏该如何处理?

A:1.使用如下命令重新签一下名,然后首次使用时按住Control键以允许运行:
   codesign --force --deep --sign - /path/to/A64Dbg.app
   或者
   2.推荐使用git clone --depth=1的方式下载,这样以后可以通过git pull的方式更新,
   方便快捷不容易出错;
Q:iOS usbmuxd端口转发程序使用哪个命令行接口?

A:推荐使用https://github.com/TestStudio/usbmuxd/blob/master/python-client/tcprelay.py;
   或者按照该接口文件封装一个脚本配置给A64Dbg;
Q:Windows平台lidadbg-server启动报错的原因?

A:在Windows平台如果你是用git clone的方式下载A64Dbg软件包的,手机端执行服务程序可能会报错:
      angler:/data/local/tmp/a64dbg-server-arm # ./lidadbg-server
      /system/bin/sh: ./lidadbg-server: No such file or directory
   报错的原因是git对脚本lidadbg-server添加了'\r'字符,导致sh无法解析该脚本。解决办法:
      git config --global core.autocrlf input,禁止其添加'\r'字符;
Q:macOS平台启动调试会话报debugserver not found的原因?

A:在macOS平台如果你把A64Dbg软件包放在沙盒目录AppTranslocation,启动调试会话时会报错:
      /bin/sh: debugserver: inaccessible or not found
   解决办法:将A64Dbg移出沙盒目录,比如移至Applications,Documents,Downloads之类的非沙盒目录;
Q:UraniumVM虚拟化调试模式Attach/Launch之后没有反应的原因?

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

a64dbg_unofficial_git's People

Contributors

geekneo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.