逆向——进程、线程调试总结

1      进程

1.1    需要调试进程的几种情况:

1)        正常的单进程调试

2)        父进程生成子进程:

a)        创建子进程时挂起状态,然后写入代码执行

b)        执行新文件(可能是新生成的文件)

3)        进程注入

创建新进程,代码注入

代码注入系统进程

1.2    针对每种调试的具体解决方法(通用方法——>逐步细分)

1.2.1    通用方法

对于通用方法,要将调试器是否能够拿到系统的最高权限的两种情况(是/否)区别开来,尤其是在调试系统进程注入代码的过程中,对于权限问题(因为只能附加调试,权限不够就不能附加)更是要注意。

因为我通常使用win7操作系统,因此后续将以win7的32位和64位举例来说明。使用这个操作系统来举例的原因是:

(1)      具有通用性,基本不会出现程序执行环境和实际执行环境不符的情况(如果程序本身的执行环境与实际执行环境不符,就会在最开始程序加载的时候在ntdll.dll直接出现异常,使用windbg调试时这个点尤其明显)

(2)      虽然有地址随机化,但是经过我目前的经验来看,在环境不变的情况下VirtualAlloc的地址也基本不变(尤其是在样本文件加载后保存快照的情况下,每次分配的地址都是不变的;但要区分一点,进程注入的地址一般是不变的)。如果非常勤快愿意再配置一个关闭地址随机化的环境,这样也是非常好的,能够确保

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
启动 您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。OllyDbg支持即时调试,根本不需要安装,可直接在软盘中运行! 线程 OllyDbg可以调试线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。 调试DLLs 您可以利用OllyDbg调试标准动态链接库(DLLs)。OllyDbg 会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。 源码级调试 OllyDbg可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。 代码高亮 OllyDbg的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。 名称 OllyDbg可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。Object 扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,OllyDbg还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。 已知函数 OllyDbg可以识别 2300 多个C 和Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log断点并可以对参数进行记录。 函数调用 OllyDbg可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。 配置 有多达百余个选项用来设置OllyDbg 的外观和运行。 数据格式:OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。 运行环境 OllyDbg可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。 支持的处理器 OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。
逆向ADB连接真机调试是指使用ADB工具来与真机进行连接并进行逆向工程和调试的过程。ADB(Android Debug Bridge)是Android开发工具包中的一个命令行工具,它可以用于与连接的Android设备进行通信和调试。通过ADB,开发人员可以执行各种操作,如安装和卸载应用程序、传输文件、查看日志等。为了逆向ADB连接真机调试,首先需要确保安装了ADB工具,并且设备已经连接到电脑上。 下面是逆向ADB连接真机调试的步骤: 1. 首先,确保你的设备已经连接到电脑上,并且USB调试模式已经启用。你可以在设备的设置中找到USB调试选项,并将其打开。 2. 打开终端或命令提示符,并进入ADB的安装目录。在终端中输入"cd [路径]"命令,将路径替换为你的ADB安装目录的路径。例如,如果你的ADB安装目录在"/Users/chenda/Documents/Development/sdk/platform-tools",则输入"cd /Users/chenda/Documents/Development/sdk/platform-tools"。 3. 确认设备已经成功连接到电脑上。在终端中输入"adb devices"命令,如果设备已经成功连接,你将看到设备的序列号和状态。 4. 如果设备连接成功,你可以开始进行逆向工程和调试了。你可以使用ADB工具执行各种操作,如安装应用程序、传输文件、查看日志等。例如,你可以使用"adb install [应用程序.apk]"命令来安装应用程序,使用"adb logcat"命令来查看设备的日志信息。 逆向ADB连接真机调试可以帮助开发人员进行应用程序的分析和调试,以便更好地了解应用程序的运行和行为。同时,它也是进行逆向工程和安全研究的重要工具之一。通过使用ADB工具,开发人员可以有效地与连接的Android设备进行通信和调试,提高开发和调试的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值