服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

第52篇:OD使用教程2-设置API函数断点去除软件对话框及过期校验

日期: 来源:ABC123安全研究实验室收集编辑:abc123info

 Part1 前言 

大家好,我是ABC_123。之前分享过一篇Ollydbg逆向分析入门教程《第50篇:使用OD逆向破解流光Fluxay扫描器各种限制》,这篇文章主要讲解了在使用OD逆向分析时,如何按照编程人员的思维去解除软件的各种限制。方法有点麻烦,而且还有一处软件过期校验没有完美去除掉。

本期除了介绍通过段首关键call解除软件过期的方法以外,还会介绍一种通过查找API函数下断点的方法。假设软件是c++写的,程序读取文件一般就会调用到ReadFile函数,程序退出一般就会调用到ExitProcess函数,那么我们完全可以在这些函数附近下断点,快速定位到关键跳及关键call,从而解除软件限制。


 Part2 逆向分析过程 

  • 去除软件的过期校验

首先看一下流光2000的这个“软件过期”窗口,在软件运行时,有时候就会弹出来这个界面,进度条走到头软件就会自动退出。上期我们通过改关键跳和nop的方法解除限制,但是不完美,偶尔还会提示软件到期,这次我们尝试完美解除这个限制。


首先我们用“智能搜索”插件试试查找字符串“到期”。


然后把找到的结果都下断点。


使用OD重新载入软件,很快定位到了弹出“软件过期窗口”的关键代码,但是在此代码附近反复下断点调试,各种修改关键跳,各种nop都行不通。


那接下来怎么办呢?不妨在这段汇编代码的段首处下断点,重新跟一下汇编代码。如下图所示,标红的00470810是段首位置,从这里开始分析汇编代码,我们发现了“GET / HTTP/1.1\r\n”字样,Host头被设置为www.sina.com.cn,推测作者是请求新浪网址的返回时间与系统时间来做对比进行软件过期校验的。

F8单步走执行到004708A9位置(如下图箭头所示),这里有一个关键call,执行速度非常慢,推测这是发起http请求的代码


这里遇到了最关键的代码test eax,eax,经过分析发现,call 00484100处代码逻辑是这样的,软件过期则eax寄存器等于00000000,软件不过期则eax寄存器等于00000001,因此这里是关键call的位置。


接下来怎么办呢?我直接把call 00484100对应的函数代码给改掉,直接将函数的代码改为mov eax,0x1; retn 0x8; 用retn 0x8后,该函数中后面的代码就都不执行了。


把关键call改掉之后,继续运行软件,发现流光2000的时间校验完美绕过。


  • 用户调查表断点定位

首先使用PEID查一下,发现是VC++6.0写的,因此我们可以查找VC++的对话框函数来下断点。


为了定位这个用户调查表,需要先讲一下有关VC++对话框的API函数基础知识。


对话框分为两类:模态对话框和非模态对话框。区别是模态对话框不允许在不同窗口之间切换,非模态对话框可以;创建模态对话框是由调用DialogBoxParam 函数实现的,创建非模态对话框是由调用CreateDialogParam函数实现。相同点是这两个函数的第一个参数都是hInstance,也就是对话框的实例句柄。

DialogBoxParam( HINSTANCE hInstance, LPCTSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);

CreateDialogParam( HINSTANCE hInstonce, LPCTSTA IpTemplateName, HWND hWndParent, OLGPAOC lpDialogFunc, LPARAM dwlniParam);

试想一下,在call一个函数前,汇编代码肯定会这样写:push 0x地址 ,意思是把0x地址的值入栈,这里0x地址对应的值就是对话框的实例句柄hInstonce的值

这时候使用工具eXeScope打开软件的主程序FluXay2.exe,挨个点击找到标题为“流光II用户调查表”对话框,记下对应的数值251,这个10进制数值就是这个对话框的实例句柄。


10进制251对应的16进制数是0Xfb,打开OD重新载入程序,查找所有命令push 0xfb下断点


经过查找发现push 0xFB 的位置在00407380,在此下断点,然后在段首00407360处也下断点。


右键点击“反汇编窗口中跟随”,这一步是为了查找到关键call,也就是查找到哪一个call调用了此对话框


在返回的地址附近的两个call都下上断点。


经过动态调试分析,把0043BF92处的代码给nop掉,即可去掉该软件的用户调查对话框。

软件打开后,不再提示用户调查对话框了。


 Part3 总结 

1.   当断点附近代码的关键跳、关键call都不奏效时,可以尝试从段首开始分析,把关键call改掉,这样的逆向修改一劳永逸解除限制。

2.   解除软件限制有各种方法,在不同的软件中,各有优缺点,需要灵活使用。


公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。

Contact me: 0day123abc#gmail.com(replace # with @)


相关阅读

  • 三个小众软件,使用体验提升300%!!

  • 今晚有点事,所以提前发,不耽误大家时间也不耽误我时间。视频版文字版WinzTree有了这款软件,你就可以清晰的看到硬盘都被什么文件占用了!它是单文件,不需要安装,直接打开就能使用。
  • 救命,关键时刻真能救命!

  • 今天给大家分享下,关键时刻能救命的软件:数据恢复。如果你误删了文件,回收站又找不到,这时候就得借助数据恢复软件了。你在百度上找的数据恢复软件,基本都是要钱的,这也正常。毕竟
  • 拯 救 网 易 云 灰 色 音 乐 !

  • 世界上最遥远的距离,就是昨天我还把你添加到收藏歌单,今天就已变成灰色。就算是尊贵的黑胶VIP,也避免不了“无版权”的痛!今天就给喜欢用官方客户端的小伙伴分享下,亲测可用的网*
  • 安全威胁情报周报(1.30~2.5)

  • 一周威胁情报摘要金融威胁情报新的恶意软件 HeadCrab 感染 Redis 服务器挖掘加密货币政府威胁情报拉脱维亚国防部疑似遭到俄罗斯威胁组织 Gamaredon 的钓鱼攻击能源威胁情报
  • 安全威胁情报周报(2.6~2.12)

  • 一周威胁情报摘要金融威胁情报新的银行木马 PixPirate 瞄准巴西金融机构政府威胁情报伊朗威胁组织 APT34 使用新后门 MrPerfectInstaller 瞄准中东地区政府机构,展开攻击能源
  • 安全威胁情报周报(2.20~2.26)

  • 一周威胁情报摘要金融威胁情报加密货币交易所 Coinbase 遭到黑客攻击政府威胁情报SideCopy APT 组织瞄准印度政府展开攻击能源威胁情报葡萄牙供水公司 Aguas do Porto 遭勒
  • 安全威胁情报周报(2.13~2.19)

  • 一周威胁情报摘要金融威胁情报Enigma Stealer 以虚假就业为诱饵瞄准加密货币行业政府威胁情报英国国会议员电子邮件疑似遭到俄罗斯黑客入侵工控威胁情报Korenix JetWave工业

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 2022年ABC123公众号年刊下载(PDF电子书)

  • Part1 前言 大家好,我是ABC_123。2022年我建立了此公众号”ABC123安全研究实验室”,得到了很大关注。8个月的时间里,我一个人用业余时间,一连串写了47篇原创技术文章,没有一篇文
  • 重磅发布!微软推出首款 ChatGPT 版搜索引擎!

  • 公众号关注 “GitHubDaily”设为 “星标”,每天带你逛 GitHub!转自:机器之心大家好,我是小 G。一夜之间,全球最大的科技公司仿佛都回到了自己年轻时的样子。在谷歌宣布「实验性对
  • 用 ChatGPT 将 Excel 工作效率提高 10 倍!

  • 公众号关注 “GitHubDaily”设为 “星标”,每天带你逛 GitHub!转自:机器之心大家好,我是小 G。在未来,精通 Excel 或许不再是简历亮点了。ChatGPT 自去年 11 月 30 日 OpenAI 重