2021-08-26

加密与解密 调试篇 动态调试技术 (一)-OllyDbg的使用 TraceMe的逆向 我们进行载入的时候 主要返回的是CPU窗口 是最主要的窗口 对应面板的C。 阅读详情

环境

1、工具
IDA、OllyDBG 、ExeinfoPE、DIE

汇编

寄存器

1、CPU通用寄存器
EAX 累加器, 它是很多加法乘法指令的缺省寄存器。
EBX 基地址寄存器, 在内存寻址时存放基地址。
ECX 计数器, 是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX 则总是被用来放整数除法产生的余数。
ESI/EDI 分别叫做”源/目标索引寄存器”,因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串。
EBP 基址指针, 它最经常被用作高级语言函数调用的”框架指针”
ESP 专门用作堆栈指针,被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。

指令

1、资料转移指令
MOV 移动
MOVC 程式记忆体移动
MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令
PUSH 放入堆叠
POP 由堆叠取回
XCH 8位元交换
XCHD 低4位元交换
SWAP 高低4位元交换

2、算术指令
ADD 两数相加
ADDC 两数相加再加C
SUBB 两数相减再减C
INC 加一指令
DEC 减一指令
MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B
DIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存B
DA (DA A 只此一条指令)调整为十进数

3、逻辑指令
ANL做AND(逻辑与)运算
ORL做OR(逻辑或)运算
XRL 做(逻辑异或)运算
CLR 清除为0
CPL 取反指令
RL 不带进位左环移
RLC 带进位左环移
RR 不带进位右环移
RRC 带进位右环移

4、控制转移类指令
JC C=1时跳
JNC C=0时跳
JB 位元=1时跳
JNB 位元=0时跳
JBC 位元=1时跳且清除此位元
LCALL 长调用子程序
ACALL 绝对调用子程序
RET 由副程式返回
RETI 由中断副程式返回
AJMP 绝对转移
SJMP 相对转移
JMP @A+DPTR 散转,相对DPTR的间接转移
JZ A=0时跳
JNZA 0时跳
CJNE 二数比较,不相等时跳
DJNZ 减一,不等於0时跳
NOP 空操作

5、位变量指令
SETB 设定为1
ORG 程序开始,规定程序的起始地址
END 程序结束
EQU 等值指令(先赋值后使用)例:SUM EQU 30H
DB 定义字节指令
DW 定义字内容
DS 定义保留一定的存贮单元数目
BIT 位地址符号指令 例:SAM BIT P1.0
RET 子程序返回指令
RETI 中断子程序返回指令
$ 本条指令地址

脱壳

常用工具

1、文件分析工具:Fi,GetTyp,peid,pe-scan
2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid
3、dump工具:IceDump,TRW,PEditor,ProcDump32,LordPE
4、PE文件编辑工具PEditor,ProcDump32,LordPE
5、重建Import Table工具:ImportREC,ReVirgin
6、ASProtect脱壳专用工具:Caspr,Rad,loader,peid

理论知识

1、ESP定律
向堆栈中压入下一行程序的地址。
2、call指令
1.向堆栈中压入下一行程序的地址;
2.JMP到call的子程序地址处。
例如:
00401029 . E8 DA240A00 call 004A3508
0040102E . 5A pop edx
在执行了00401029以后,程序会将0040102E压入堆栈,然后JMP到004A3508地址处!
3、ret指令
1.将当前的ESP中指向的地址出栈;
2.JMP到这个地址。
4、OEP
OEP程序的入口点,找到OEP就能快速脱壳,如果把壳比作锁,OEP就是锁孔。

方法与修复

1、找到一个带有压缩壳的程序,使用ExeinfoPE或者DIE查壳
在这里插入图片描述
通过软件查看程序信息,该程序被UPX压缩
在这里插入图片描述
2、将程序载入OD
在这里插入图片描述
3、使用IDAF分析解壳位置,根据ESP堆栈平衡原理,找到OEP位置在popa处
在这里插入图片描述
4、OD中跳转到0040EA0E处,运行代码
在这里插入图片描述在这里插入图片描述
5、F8单步步过到004010CC
在这里插入图片描述
6、右键使用OllyDump脱壳调试进程,入口地址为10CC
在这里插入图片描述
7、使用LordPE、ImportREC进行修复转储,脱壳完成。

OllyDBG动态调试

常用快捷键

F2
设置断点,只要在光标定位的位置按F2健即可,在按一次F2键则会删除断点。
F8
单步步过,每按一次这个键执行一条反汇编窗口中的一条指令,遇到call等子程序不进入其代码。
F7
单步步入:功能同单步步过(F8)类似,区别是遇到ll等子程序会进入其中,进入后首先会停留在子程序的第一条指令上。
F4
运行到选定位置,作用就是直接运行到光标所在位置处暂停。
F9
运行,按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。
Ctrl+F9
执行到返回,此命令在执行到一个ret (返回指令)指令时暂停,常用于从系统部分返回到我们调试的程序部分。

破解

1、OD载入要破解的程序,F9运行,用户名和序列号就是接下来要破解的对象
在这里插入图片描述
2、工具栏打开常用断点设置,设置断点
在这里插入图片描述在这里插入图片描述
3、任意输入用户名和序列号,点击check,程序运行到断点处
在这里插入图片描述
4、Ctrl+F9执行到返回
在这里插入图片描述
5、一直F8运行,图中edx和eax处就是用户名和序列号的压栈处
在这里插入图片描述
6、F7进入call指令处,此处是循环判断
在这里插入图片描述在这里插入图片描述
7、循环判断完后,会将返回值放入inc中,此时eax中为0
在这里插入图片描述在这里插入图片描述
8、F8运行到循环语句设置断点,继续F8运行,结果显示“序列号错误,再来一次!”
在这里插入图片描述
9、由此判断004011F5处是关键跳转点,设置断点,重新运行程序,运行到断点时,修改je指令,运行程序,破解成功。

在这里插入图片描述在这里插入图片描述

【愚公系列】2023年06月 逆向分析之Ollydbg(基本介绍和使用) Ollydbg是一个x86体系结构的反汇编器和调试器,它是一款非常受欢迎的调试工具,通常用于软件逆向工程和漏洞发现过程中。可以反汇编并调试x86二进制文件支持多种反汇编风格,如汇编、C、Pascal等支持多种调试功能,如单步执行、断点、内存查看和修改等可以在不影响原始代码的情况下修改程序内容,并重新运行程序打开Ollydbg并加载要调试的二进制文件设置断点,例如在特定的指令处停下来或在某个内存位置处停下来运行程序并观察断点何时触发在程序暂停时查看寄存器、堆栈、内存和其他相关信息。 阅读详情

相关推荐

Detect It Easy 非常强大的查壳工具-Die-V3.09

软件介绍: Detect It Easy简称Die,是一款专业查壳工具,比PEID强大得多,能查一次查到底。并支持超大文件读取,其他查壳工具无法打开的程序,这个都能读取。虽然没有PEID出名,但是相当的强大,完全可以替代PEID。 Detect It Easy完全开放签名架构。可以轻松添加自己的算法来检测或修改已存在的算法。这是通过使用脚本来实现的。脚本语言与JavaScript非常相似,任何了解编程基础知识的人都会很容易理解它的工作原理。可能有人可能会决定脚本工作非常缓慢。事实上,脚本运行速度比编译代码慢,但是,由于脚本引擎的良好优化,这不会造成任何特别的不便。开放式架构的可能性弥补了这些限制 软件特色: 1.绿色免费,不用安装 2.支持文件拖放 3.支持添加右键菜单 4.支持多国语言(包含简体中文) 5.支持 Windows,Mac,Linux 系统 6.支持自定义插件 7.支持脚本编写与定义 8.支持多种皮肤选择 9.支持 16 进制编辑 10.Detect It Easy 和 Peid 一样可以加载插件,功能上大同小异 11.MSDOS可执行文件MS-DO

Ollydbg 入门、使用 Ollydbg 从零开始 Cracking、玩玩破解,写给新人看

OllyDBG 入门、使用OllyDbg从零开始Cracking

freeking101的博客 4万+

DIE,应用程序查壳工具

DIE,应用程序查壳工具

网络安全|渗透测试入门学习,从零基础入门到精通—动态分析技术工具OllyDbg界面介绍

OllyDbg(简称“OD”)是由leh Yuschuk(网上查了很久,竟然很少OD作者的消息。在一个国外站点上,我零星地找到一点资料:Oleh Yuschuk: 可能是前苏联->俄罗斯人,前苏联解体后移民德国且一直住在德国一个古老的小城,具体的信息查询不到)编写的一款具有可视化界面的用户模式调试器,可以在当前各种版本的 Windows上运行NT系统架构更能发挥OllyDbg 的强大功能。

Jum的博客 7711

最好的查壳工具DIE (大家可以试试比PEID好用)

非常好用的查壳的工具,比PEID好用,没有查不出来的,可以反汇编 非常方便(强烈推荐)

最好的查壳工具DIE (大家可以试试比PEID好用),

Detect It Easy简称Die,是一款专业查壳工具,比PEID强大得多,能查一次查到底。并支持超大文件读取,其他查壳工具无法打开的程序,这个都能读取。虽然没有PEID出名,但是相当的强大,完全可以替代PEID。 软件特色 绿色免费,不用安装 支持文件拖放 支持添加右键菜单 支持多国语言(包含简体中文) 支持 Windows,Mac,Linux 系统 支持自定义插件 支持脚本编写与定义 支持多种皮肤选择 支持 16 进制编辑

Amber_log
博客等级 码龄8年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值