OllyDbg—在EXE软件启动时加入提示

未分类 cyanprobe 10年前 (2015-07-30) 6325次浏览 已收录 4个评论

前言:

这个天太热了的说,今天给大家带来的是给软件加入自己的提示框,OllyDbg走起。
bj2

EXE载入到OllyDbg:

首先,我们把准备好的任意没有壳子的软件拖入到OD中,我们CTRL+N调出函数列表,找到MessageBoxA,右键复制到剪贴板,整个行。如图所示:
2015-07-30_105456
我们把赋值的行黏贴到TXT文件中,这边内容如下:(注意红框内的地址后面我们要用到)
2015-07-30_105709
 
我们在数据窗口寻找000000……未写入ASCII的地方空格编写(注意保持大小)我写的如图:
2015-07-30_110551
 
我修改的数据地址是0066DFD0至0066DFF0之间,这个也要记住了。接下来我们选定数据,复制到可执行文件,然后复制到文件。如图:2015-07-30_110740
至此,我们的准备工作完成。接下来我们OD载入刚才保存的文件,然后在汇编窗口找到db0 db0这样的空代码行,写入:

 00658624 6A 00 push 0x0  //代码段开头
00658626 68 D0DF6600 push 0066DFD0 //数据修改起点
0065862B 68 F0DF6600 push 0066DFF0  //数据修改终点
00658630 6A 00 push 0x0  //系统需求
00658632 36:FF15 08AC6>call dword ptr ss:[XXXXX>; //xxxxx为messageboxA地址
00658639 55 push ebp  //补充代码段开头
0065863A 8BEC mov ebp,esp
0065863C 6A FF push -0x1
0065863E ^\E9 06FFFFFF jmp 00658549

此时在程序OEP那里代码变成了:

00658544 > /E9 DB000000 jmp greenvpn.00658624
00658549 |90 nop

我知道你们一定不理解,所以我做了个图来解释下,我们打开文件文件从OEP开始执行代码,我们把OEP改了,让他跳转到后面的我们写的代码段,这样你在OEP写JMP的话会自动把后面三行代码NOP掉,我们在空代码段上把NOP掉的码补上,然后跳转回OEP的NOP点地址。下图是原OEP和JMP后的OEP对比。
2015-07-30_122014
 
2015-07-30_122033
我们明显看到缺码了,所以我们实现功能后要补码,JMP回NOP位置让其程序运行。

后记:

这个文章方法肯定很多人会,我只是解释下补码的思想,方便新手理解为什么有第二段代码头,话说我一开始也是百思不得其解的说,最后的最后加框成功!为什么不发效果图…ASCII位置没掌握好..变成了“块网络破解”了,我就不贴出来了,丢人….


CyanProbe , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:OllyDbg—在EXE软件启动时加入提示
喜欢 (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. 果然每天都是 技术文章。学习学习。哈哈
    姜辰2015-07-30 12:56 回复
  2. 这么多代码,博主真专业。加油。
    wys.me2015-07-31 20:05 回复
  3. OD玩的很棒啊~现在看到OEP就头疼了,别说用OD调试东西了
    慕若曦2016-01-24 23:35 回复