小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向

 

小甲鱼 OllyDbg 视频教程
      尝试 1 : https://www.bilibili.com/video/av6889190?p=17
      尝试 2 : https://www.bilibili.com/video/av6889190?p=18

小甲鱼OD学习第13-14讲:https://www.bbsmax.com/A/QV5ZL1gZzy/

逆向常用 api :https://pan.baidu.com/s/1dypI6la3Gj4i-G6exiCMkg    提取码:v6dq 


 

尝试 1:使用 查找模块间的调用 进行逆向

 

方法 1:

API 函数 GetWindowTextA 可以取得一个窗体的标题(caption)文字,或者一个控件的内容

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第1张图片

可以通过 api 函数 GetWindowTextA 来进行逆向

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第2张图片

搜索 API 函数 GetWindowTextA 函数

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第3张图片

 按 Alt + b ,查看所有断点,可以看到 下了 3 个断点

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第4张图片

 

把 这个 3 个断点删除,使用另外一种方法查找。

 

方法 2:

按下  Ctrl + n ,查找 getwindowa ,然后 右键 -> 在每个参考上设置断点。按下 Alt + b ,可以看到还是设置三个断点。

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第5张图片

查看断点 Alt + b:

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第6张图片

然后重新载入程序、运行,看程序有没有在断点处停下来。发现程序在断点处停下来,因为没有输入内容,所以这个断点是没有用的,删除这个断点,按 F9 继续。发现程序又在一个断点处停下来,同样没有输入内容,所以这个断点也是没有用的,删除这个断点,按 F9 继续。发现程序运行,出现界面。点击注册:

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第7张图片

发现程序果断的在最后一个断点处停下,

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第8张图片

然后开始 F7、F8 调试,寻找关键跳转:

可见是判断al值,那么上一个call可能就是计算加密的函数,下断点进入

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第9张图片

神奇的发现有两处call地址相同,附近代码也相同,猜测这是程序怕被破解所以出现的二次验证程序

进入后找到两处retn

由经验得出第一个retn为true,第二个为false

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第10张图片

将跳转实现的标志位修改成未实现(修改标志位Z)

修改后确实弹出了注册成功了的对话框,但是发现界面依然显示未注册的信息。

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第11张图片

这时候我们就要考虑他的双重验证了,第二个验证call

也可以通过字符串查询方式,寻找关键位置

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第12张图片

下断点进入,找到关键跳转关键call

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第13张图片

进入函数 

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第14张图片

找到关键跳转,mov bl,1   
后面直接 mov al,bl
我们修改代码 mov al,1

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第15张图片

成功

总结:还是要锻炼寻找加密思路,寻找关键的上一个跳转及call是最关键的

 

 

尝试 2:查找关键字进行爆破

 

这次我们的任务是 PJ 这个需要注册码的软件,如下图所示

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第16张图片

我们搜索上图相应的提示字符串,看看能找到什么线索,我们搜索  invalid  code  试试看,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第17张图片

然后下断点,如下图所示

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第18张图片

我们来到断点处的代码,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第19张图片

观察代码,发现0041749C  JNZ SHORT XoftSpy.004174E3  能跳转到相应的成功注册的提示信息,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第20张图片

我们干脆把代码改为 jmp  SHORT XoftSpy.004174E3,看看效果,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第21张图片

用所有修改保存,运行程序并且注册,发现提示成功,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第22张图片

但是我们又发现,软件还是没有注册成功,如下图所示

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第23张图片

我们干脆换个方式,搜索另外一个标志字符串,下断点,如下图所示

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第24张图片

观察 00401499 JE SHORT XoftSpy.004014AD,这行代码能跳转到软件注册成功的代码处,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第25张图片

我们尝试着用NOP来代替这行代码看看效果,如下图

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第26张图片

用所有修改保存,运行软件,发现已经破解成功!!

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向_第27张图片

 

 

 

你可能感兴趣的:(OllyDbg)