od 调试android_od调试和vs调试 - CSDN
  • 1、无法单步调试调试多线程程序的时候,如果遇到断点能断下来,但是一按F7/F8程序就运行起来了,这种情况多半是线程被挂起了 首先是去看看线程窗口,是不是有线程被挂起来,如果有,右键-->Resume all ...

    1、无法单步调试

    在调试多线程程序的时候,如果遇到断点能断下来,但是一按F7/F8程序就运行起来了,这种情况多半是线程被挂起了

    首先是去看看线程窗口,是不是有线程被挂起来,如果有,右键-->Resume all thread,然后就可以继续单步调试了

     

    2、程序运行到一半,OD就已经退出,进程终止

    这种情况一般是程序有一些反调试手段,我当时的情况是有两个线程,总是在第一个线程结束的时候OD就终止了,但是我需要分析的数据都在第二个线程里面,所以当时纠结了好久,试过下各种断点,包括断在创建线程、_exitthread之类的地方,但是还是无济于事。再说明一下,我当时是在64位机上面调试,我调试的程序进程B是由另一个程序进程A启动的,在OD中是用附加了B进程。

    解决办法就是:原版OD+StrongOD+SharpOD 64,因为StrongOD很多功能可能在64位机器上面无法正常执行其功能,需要用到SharpOD来执行主要的反调试功能。

    用上面的配置把程序加载之后,就不会出现运行到一半OD就终止了,能够运行到程序结束。

    StrongOD配置:

    SharpOD配置:

     

    搜索关注公众号[逆向小生],不定期更新逆向工程师需要掌握的技能,包括Windows和Android方面的逆向,还有作为一个逆向工程师的思维模式。

     

    展开全文
  • android调试so文件记录(一)1:保存日志带so的部分 例如:06-08 16:02:42.651 3085-3085/? A/DEBUG: #00 pc 0008a42c /data/app/...

    android调试so文件记录(一)


    1:保存日志带so的部分 例如:

    06-08 16:02:42.651 3085-3085/? A/DEBUG:     #00 pc 0008a42c  /data/app/com.android.lvs.lvsandroid-2/lib/arm/libLvsAndroidInterfaceInVideoDispose.so
    06-08 16:02:42.651 3085-3085/? A/DEBUG:     #01 pc 0008c485  /data/app/com.android.lvs.lvsandroid-2/lib/arm/libLvsAndroidInterfaceInVideoDispose.so (Java_com_android_lvs_androidjni_LvsAndroidInterfaceInVideoDispose_lvs_1interface_1write+24)
    06-08 16:02:42.651 3085-3085/? A/DEBUG:     #02 pc 00029119  /data/data/com.android.lvs.lvsandroid/cache/slice-slice_1-classes.dex (offset 0x22000) (int com.android.lvs.androidjni.LvsAndroidInterfaceInVideoDispose.lvs_interface_write(java.util.HashMap, java.util.HashMap)+116)
    06-08 16:02:42.651 3085-3085/? A/DEBUG:     #03 pc 0004a77b  /data/data/com.android.lvs.lvsandroid/cache/slice-slice_7-classes.dex (offset 0x44000) (void com.android.lvs.lvsandroid.Lvs_Publish_Interface_Sdk_Android$2.run()+1310)
    06-08 16:02:42.651 3085-3085/? A/DEBUG:     #04 pc 02f61849  /system/framework/arm/boot.oat (offset 0x2f44000)
    这样的日志 指定具体的so文件

    2:cd到生成so调试文件的位置例如:Lvs_In_Video_Dispose_Module/obj/local/armeabi-v7a 这个目录下会有个libLvsAndroidInterfaceInVideoDispose.so,注意是调试的目录下。

    3:执行命令:addr2line -f -e libLvsAndroidInterfaceInVideoDispose.so 0008a42c 最后的栈地址和上面的日志对应

    4:会出现如下:
    _ZL26Jobject2Module_Info_2writeP7_JNIEnvP8_jobjectS2_P13Module_Info_ti11UseInfoType.isra.0.constprop.5
    /home/zhuweigang/work/android/lvs_android_ndk/Lvs_In_Video_Dispose_Module/jni/../../Lvs_In_Video_Dispose_Module/src/android/LvsAndroidInterfaceInVideoDispose.cpp:498 日志,

    说明498行有问题。



    如有错误请指正:
    交流请加QQ群:62054820
    QQ:379969650.


    展开全文
  • 0x1 AS动态调试smali环境配置 Android Studio是由谷歌发布的一个为Android平台开发程序的集成开发环境。由于其功能的强大,近几年来已经逐渐取代eclipse成为Android开发的首选工具。 AS动态调试smali代码需要用到...

    0x1 AS动态调试smali环境配置

    Android Studio是由谷歌发布的一个为Android平台开发程序的集成开发环境。由于其功能的强大,近几年来已经逐渐取代eclipse成为Android开发的首选工具。

    AS动态调试smali代码需要用到smalidea这一插件,关于安装步骤及配置网上教程一大把就不再多说,不过要注意的是在连接模拟器时,我们可以不再用DDMS,省去这一步骤,直接用adb连接安卓模拟器即可,端口转发依旧为8700。笔者用的是lei电模拟器作为本次的虚拟机。在这里插入图片描述
    如图,即为连接完成。我们在as中配置完成后,就可以连接模拟器了。在这里插入图片描述
    1.adb shell am start -D -n com.qianyu.zhuceji/com.qianyu.zhuceji.MainActivity

    2.adb forward tcp:8700 jdwp:2692
    使用这两个命令即可连接成功。要注意此处可能会发生8700端口被占用的情况,这时候只需1.netstat -aon | findstr “8700”

    2.根据PID找到该进程,结束进程

    3.打开任务管理器—>查看—>选项列(S)—>勾选 PID,确定—>进程按钮栏

    0x2 AS动态调试过程
    连接完成后,打开MainActivity主活动,该注册机是需要用户名跟密码两个部分,我们在这两处下断点,需要注意,断点不要下的太频繁。在这里插入图片描述
    Android Studio与OD断点调试的操作基本一致,此时,F9运行一下,然后输入用户名跟密码,进行动态调试。

    此时,函数断在了第一处断点。接下来单步调试,是很容易出现结果的,但是这是建立在理解smali内容的基础上,我们可以先分析一下smali文件的整体逻辑,再得出结果。在这里插入图片描述
    从length值处开始查看,p2在上面的逻辑中,指的是sign注册码,传入后得到v8,在下面定义了一个16位的寄存器v9,v8与v9进行比较,如果结果相等,就不会跳转。继续往下执行。在这里插入图片描述
    之后下面就是将v8寄存器的值变为了MD5。然后调用了getInstance方法,返回值为v1,但是v1在下面做了太多的操作,所以对于v1可以先放一边,继续往下走在这里插入图片描述
    在此处将v8清空了,下一步就到了重点,此处涉及了v0,v8,v3三个寄存器,调用了toHexString方法之后,就得到了:hexstr=‘fdb45974c491664572c3b81d26a589f4’

    v0跟v8逻辑就是,传入一个字符串放入v0之后,通过toHexString方法,就转换成为了16进制的字符串,保存在v3。v3的值与hexstr相等。

    下面的v5,sb就很容易理解了,传入的值经过计算最终返回v6,就是我们要求的验证码,但是此时v6还无法显示,f8单步,再查看v6的值即可。

    展开全文
  • 1: 反编译 2: 打开apk调试功能,使apk可以进行调试;...让apk打开后 等待调试,暂停在入口位置,如同OD调试程序停留在入口一样; 入口函数 可以通过 androidkiller反编译 得到 apk入口文件 然后在入口文件的...

    1:
    反编译
    2:
    打开apk调试功能,使apk可以进行调试;
    在反编译后的 文件里的 AndroidMainfest 文件里的 application元素 里
    添加 android:debuggable=“true”
    3:
    让apk打开后 等待调试,暂停在入口位置,如同OD调试程序停留在入口一样;
    入口函数 可以通过 androidkiller反编译 得到 apk入口文件
    然后在入口文件的
    onCreate 函数下 第一行 添加
    invoke-static{},Landroid/os/Debug;->waitForDebugger()V
    4:
    回编译
    5:
    用Apktoolbox 对回编译的apk进行 签名 //AndroidKiller的话 可以省略 因为工具集成了
    6:
    安装 (用豌豆荚 或者 cmd命令 或者是 用androidkiller反编译一个apk然后回编 然后到它的 bin文件夹里 把我们签名好的 apk 放进去 把名字改成 存在的 apk的名字一样的名字 ) 这样就可以通过 androidkiller 工具来进行 安装 和卸载
    7:
    运行前打开 monitor (这个可以得到运行的apk 端口 一般是8700 因为在monitor上找到目标进程的时候 选中的时候 这时就赋予了 8700端口 这个端口在后面 andoirdstudil里面要设置的)
    运行 cmd 输入 monitor 稍等一会即可打开monitor
    这步必须要 因为要赋予进程的端口 让 androidstudio配置 这个端口 好调试
    8:
    打开 androidstudio 打开我们之前apk反编译后的 修改好的 工程文件夹
    在 静态分析好后的 所需要动态调试的 位置 下断点
    同时 进行下 调试配置 (菜单栏 运行->编辑结构->+ -> 远程 (其他默认 设置下断口 端口就是 monitor 里的 端口号如:8700))
    9:
    手机运行apk 这时会停留在 等待调试状态
    10:
    androidstudio 点击 Debug运行(运行后面的 那个也有小运行标志的)
    这时 手机apk就会运行了 进行操作 操作到下断点的部分 这时androidkiller 就会到断点位置了

    要点1,必须使用2.1.0之前的apktool版本,还不能使用新版,新版无法反编译
    要点2,必须使用apktool,androidkiller反编译的载入AS是smali文件,不是java,无法设置断点
    要点3,先打开monitor,否则手机无法正常显示.如仍然不行,重新插拔手机数据线即可.如仍然不能解决,删除掉电脑中一切手机助手程序,还有手机中一切手机助手程序重试

    展开全文
  • 之前,为了学习Android 调试,必须使用真机,结合上其他原因,导致放弃。 此下记录的是,使用非官方Android 模拟器,实现了IDA 连接调试 模拟器的步骤。 首先使用的是 IDA 7.0 ,在 dbgsrv 文件夹找到 android_x86_...

    转载于 https://bbs.pediy.com/thread-224420.htm
    此文只是为了记录作为新手的我,学习到的一些技巧。
    之前,为了学习Android 调试,必须使用真机,结合上其他原因,导致放弃。
    此下记录的是,使用非官方Android 模拟器,实现了IDA 连接调试 模拟器的步骤。

    首先使用的是 IDA 7.0 ,在 dbgsrv 文件夹找到 android_x86_server

    上传命令: adb push E:\android_x86_server /data/local/tmp/
    进入命令: adb shell
    转文件夹: cd /data/local/tmp/
    提权命令: chmod 777 android_x86_server
    启动命令: ./android_x86_server

    正常会出现
    root@android:/data/local/tmp # ./android_x86_server
    IDA Android x86 32-bit remote debug server(ST) v1.22. Hex-Rays © 2004-2017
    Listening on 0.0.0.0:23946…

    再启动一个终端
    转接端口: adb forward tcp:23946 tcp:23946

    最后一步附加
    Attach -> Remote Linux debugger

    以上注释命令只是个人忽略的理解,如果有错误请大神们纠正指出。

    总结:以往在我理解是无法用IDA 调试上模拟器(起码对非正经arm模拟器应该如此)
    So: 需要注意3点,IDA7 , android_x86_server , Remote Linux debugger

    展开全文
  • 主要思路就是先在IDA中把函数名,变量名改成根据实际功能的命名,然后生成map文件,再用OD打开要分析的exe,最后利用插件LoadMap打开之前生成的map文件,就可以在OD中也看到之前在IDA中改过的文件名和变量名了 ...
  • 上一篇 《教我兄弟学Android逆向09 IDA...答:反调试技术是为了保护自己程序的代码。增加逆向分析的难度 防止程序被破解, 针对动态分析。要么学!要么不学!学和不学之间没有中间值 不学就放弃,学就要去认真的学! ...
  • 安卓版本od和ce,目前全国最强大的安卓逆向工具。给大家推荐一款安卓逆向工具,觉得好用自己点赞回复下。 雷电模拟器作为例子: 这个很像ce吧,其实功能也差不多 附加进程,so注入 安卓汇编分析,这里是基于雷电的...
  • AndBug 环境搭建 git clone cd 到AndBug目录,执行make58deMacBook-Pro-7:AndBug wuxian$ make PYTHONPATH=lib python setup.py test running test .:: '' of () -> '' :: '1' of (0,) -> '\x00' ...
  • 关于手游反调试的事

    2019-03-26 16:24:02
    Android 常用反调试方法 TracerPid:/proc/self/status 的 TracerPid 字段,非调试状态下的数值为 0,调试状态下的数值为调试器的进程 pid 子进程调试:子进程对父进程进行调试,占用调试名额,防止其它调试器附加 ...
  • 前言在 二、Android系统源码编译及刷机实战 一文中,我们成功编译了Android 4.4.4_r1源码并刷入系统了 Nexus 5 设备,下面是设置界面的信息。上面显示的内核版本信息是3.4.0-gd59db4e,内核的编译时间是Mon Mar 17 ...
  • 用eclipse进行android开发中经常遇到logcat无任何信息输出,这给我们调试程序带来很大的不便。解决办法:window-->show view-->选择android下的devices,打开devices,点击右边的截屏图片。等到出现截图的时候,log
  • /*  * 作者:wuaiwu * 原文链接:http://www.sanwho.com/552.html * 转载请注明出处 */ 一、Ndk下内联汇编 跟vc下一样,ndk编译环境下也能使用内联汇编,如下: include  ...“mov
  • 那些不靠谱的工具 ...兴奋之后你才会发现IDA这东西在动态调试方面真的是很挫,就算他是静态反编译之王,我也不得不说他的动态调试功能还非常需要加强。先说说使用ida调试dex的方法。 IDA pro调试
  • 今天参加华为OD机试,总共有两道机试题,每道题200分,总共400分,华为那边要求是两道题全过。第一道题是磁盘容量排序,其实挺简单的,但我一直没调试好,导致心态直接崩了,后面第二题也没看,看来以后要好好刷题才...
  • Apk无源调试利器

    2012-05-12 11:54:04
    我们在开发android应用时,一般会直接使用eclipse来调试java代码。但是那只是在有源代码的情况下,我们用eclipse调试是很方便的。 但是当我们做android逆向时,显然不会有源代码,这时候如果想要调试目标java代码呢...
  • od分析基础逆向5

    2019-07-18 16:42:13
    载入od 先对字符串进行查找 右键查找所有文本字符 搜索:name / code 双击进入所在位置 观察代码段同时,注意到上方有感谢注册字符串后接jmp指令跳过未注册字符 继续向上查找 出现关键计算函数以及关键跳转 ...
  • 八种方法检测是否存在模拟器 检查特定的几个关键点 0×1 检测“/dev/socket/qemud”,“/dev/qemu_pipe”这两个通道 代码demo: ...123456789101112131415161718private static String
  • 最近研究SO文件调试和dump内存时,为了完整IDA调试起来,前后摸索了3天才成功,里面有很多坑和细节,稍微不注意,就一直排行,需要理解每步骤的作用意义,否则就会觉得教程不对,要详细的教程可能找不到,大部分都是...
1 2 3 4 5 ... 20
收藏数 634
精华内容 253
关键字:

od 调试android