小甲鱼 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)文字,或者一个控件的内容

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

搜索 API 函数 GetWindowTextA 函数

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

 

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

 

方法 2:

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

查看断点 Alt + b:

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

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

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

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

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

进入后找到两处retn

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

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

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

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

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

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

进入函数 

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

成功

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

 

 

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

 

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

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

然后下断点,如下图所示

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

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

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

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

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

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

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

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

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

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值