步骤1:通过”adb push $(IDA-DIR)\android_server /data/local/”安装服务程序; 步骤2:通过”chmod 755 /data/local/android_server”更改服务程序执行权限; 步骤3:以root方式运行/data/local/android_server(不以root的方式将获取不到App的进程列表); 步骤4:在PC命令行执行”adb forward tcp:23946 tcp:23946”命令,让IDA可以连接本地端口进行远程调试; 步骤5:启动一个IDA-ANA,加载并分析需要调试的JNI动态库,比如libgikir_demo.so; 步骤6:在手机端启动加载上述JNI动态库的App,比如com.gikir.demo; 步骤7:启动另一个IDA-DBG,执行Debugger/Attach/Remote ARMlinux/android debugger菜单设置Hostname为localhost,Port为23946确定后在进程列表中找到com.gikir.demo进程,attach并记下pid,此时会断在libc.so的模块空间中; 步骤8:在PC命令行依次执行”adb shell”,”su”,”cat /proc/pid/maps”,找到libgikir_demo.so的基址,并记下base; 步骤9:在IDA-ANA中定位需要调试的函数偏移offset; 步骤10:在IDA-DBG中利用g命令跳转到需要调试的函数起始地址(base + offset),并执行c命令得到汇编代码,下断点并F9运行; 步骤11:在App中操作直到上述断点被击中; 步骤12:Have Fun !
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)