od分析基础逆向5

本文介绍了使用OD(OllyDbg)进行基础逆向操作以去除程序Nag的方法。通过对字符串查找、设置断点、调试代码等操作,定位关键计算函数和跳转指令,可修改指令或eax值来绕过注册验证。还提及使用exescope、resource hacker辅助查找相关对话框和函数位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开程序点击file register
在这里插入图片描述任意输入字符
在这里插入图片描述
同时在退出时出现nag
在这里插入图片描述
载入od
先对字符串进行查找
右键查找所有文本字符 搜索:name / code
在这里插入图片描述双击进入所在位置
在这里插入图片描述观察代码段同时,注意到上方有感谢注册字符串后接jmp指令跳过未注册字符
继续向上查找
在这里插入图片描述出现关键计算函数以及关键跳转
在函数位置下断点测试
输入code后在此停住
F8调试发现经过call后eax的值为0
修改标志进行测试
在这里插入图片描述
测试成功
可以将此处je指令修改为jmp指令
或者修改and指令为 mov eax,0x1
也可以使用exescope 点击资源-对话框
找到nag所在的对话框103
在这里插入图片描述在od中查找命令
在这里插入图片描述
由于调用函数需要运用到模态对话框,该数字最后传入代表着该函数的调用
找到该命令所在地址
在这里插入图片描述
观察代码,发现无跳转
向上寻找函数开始的标志
进行调试
然后在堆栈窗口查看并数据跟随即可

打开程序
在这里插入图片描述
结尾处出现nag
在这里插入图片描述目的是将其nag去除
载入od
运行在nag出现处在od暂停,查看调用函数堆栈
在这里插入图片描述发现diglogbox函数,并且从下往上找只有该函数位于程序领空
双击进去该函数位置
在这里插入图片描述观察代码,发现上方存在je跳转至该call指令下方且je跳转上方存在cmp指令
推测je指令上方的函数为判断是否注册的函数
并在此下断点测试改变je标志位
测试成功直接结束无nag
可将je修改为jmp指令
另外
使用resource hacker 打开程序 点击对话框
在这里插入图片描述找到该函数位于十进制100
载入od
右键搜索-所有指令->输入 push 0x64
在这里插入图片描述在所有指令处下断点,进行调试来找出真正需要的函数位置
逐一寻找
在这里插入图片描述发现上面查找堆栈发现的dialogbox函数
确认上方的call函数为判断是否注册函数
进去call函数
在这里插入图片描述观察到存在两个jnz指令跳转至下方ret
函数在此段使用 RegOpenKeyExRegQueryValueEx对用户名和密码进行校验
在这里插入图片描述并在该call内进行计算
可以在下方修改eax的值为1来改变结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值