步骤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 !
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课