IDA远程调试so库JNI_Onload函数】的更多相关文章

JNI_OnLoad函数大概功能就是在程序加载so的时候,会执行JNI_OnLoad函数,做一系列的准备工作.很多时候,程序猿们会将一些重要信息放在此函数中,而不是通过某种事件来重复触发.包括说将反调试函数放置在此函数中.因此,调试手段发生了改变,上述调试方法基本上被淘汰. 1.静态分析,找到JNI_OnLoad函数的偏移 2.执行android_server 3.端口转发 4. 以调试模式启动程序adb shell am start -D -n com.example.mytestcm/.Ma…
之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解论坛的该贴,我也是看了很多遍,自己也查了不少资料,但是自己动手的时候总觉比较繁琐,并且很多细节的地方没有注意到,按照那个帖子尝试了几遍但是却出现了错误(后面会提到),今天周末重新拾起来试了试,终于把遇到的问题给解决了,顺便做个记录以免忘记了,其中的一些细节我也不是太明白,忘知道的人给指出. 第一步.…
1. 首先使用调试JNI_OnLoad函数的方法,先将apk以调试状态挂起,使用IDA附加上去. 2. 然后在libdvm.so中的dvmDexFileOpenPartial函数上下一个断点 3. 然后我们点击继续运行,程序就会在dvmDexFileOpenPartial()这个函数处暂停,R0寄存器指向的地址就是dex文件在内存中的地址,R1寄存器就是dex文件的大小 4. 然后我们就可以使用ida的script command去dump内存中的dex文件了. static main(void…
  1.把ida 目录下android_server 传到android 目录中如:adb push  android_server /data/local/tmp/adb shell 进入模拟器cd /data/local/tmp/chmod 755 android_server./android_server看到监听端口 23946 2.在windows 控制台下转发window 到模拟器或者手机的端口adb forward tcp:23946 tcp:23946 3.ida 中选择andr…
第一步,先去 IDA   dbgsrv  这个目录下,找到要调试的那个远程计算机对应的可用客户端, 比如,android_server, 把它拷贝到目标计算机中, 比如 adb push .... 然后如果是特殊的系统,给它一个执行权限, 比如 adb shell , chmod 777 ... 然后运行它,它会监听一个端口, 23946 , 使用某些方法,让这个端口可以被我们的电脑访问, 比如 adb forward tcp:23946 tcp:23946 然后,就可以打开IDA,连接这个端口…
docker安装 1.卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker-ce docker.io   如果想要彻底卸载docker: sudo apt-get remove docker-ce docker-ce-cli 2.更新apt包索引 sudo apt-get update 3.安装以下包以使apt可以通过HTTPS使用存储库(repository) sudo apt-get install -y apt-transp…
加入 --security-opt seccomp:unconfined选项,关闭docker远程命令执行保护 如: docker run --security-opt seccomp:unconfined -it -p 23945:23946 ubuntu.17.04.i386 /bin/bash *注意:security选项一定要在-it参数之前,否则会报错“ docker: Error response from daemon: OCI runtime create failed: con…
IDA连接android_server 选中进程点ok之后 连接不上报错 The debugger could not attach to the selected process. This can perhaps indicate the process was just terminated, or that you dot't have the necessary privileges. 输出窗口提示 irs_recv 等待的操作过时原因: Android5.0之后默认启用了 SELin…
IDA动态调试技术及Dump内存 来源 https://blog.csdn.net/u010019468/article/details/78491815 最近研究SO文件调试和dump内存时,为了完整IDA调试起来,前后摸索了3天才成功,里面有很多坑和细节,稍微不注意,就一直排行,需要理解每步骤的作用意义,否则就会觉得教程不对,要详细的教程可能找不到,大部分都是简单介绍,没有提醒细节和易忽视的点 动态调试步骤,顺序严格如下 事先准备工作 1.要求root手机或者直接用模拟器 否则没有权限启动a…
早些时间用ndk编译带main入口函数的动态库,测试可运行.今天要作它用时,发现在这个入口函数并没有传入正确的参数. hello.cpp有main函数,用ndk分别编译成可执行文件和动态库文件,使两者都可以在android手机下运行. 左侧是由编译出的可执行文件objdump出来的反汇编, 右侧是远程调试带main入口函数的动态库文件,反汇编main函数,以及可以看到栈帧的参数是错乱的. 问题悬挂作下记录,待有时间再看.…