首页
社区
课程
招聘
[原创]irptrace破解方法
发表于: 2011-10-17 12:19 13850

[原创]irptrace破解方法

2011-10-17 12:19
13850
最近看驱动程序教程,对IRP的理解有点模糊,书中介绍到IRP跟踪利器irptrace工具,于是下载之,发现还得注册,于是想破解之。点开程序发现弹出已对话框(见下图)

      上面说如果购买本产品就会得到一个序列号,如果不购买本产品就只能试用15天,这就说明程序功能上没有限制,只是有时间限制,而且每次出现都会弹出这个对话框并且在桌面上停留30秒。只要软件功能上没有限制就有破解的意义,一般来说软件的限制类型有以下两种:一、时间限制;二、功能限制。功能限制又可分为功能不全的体验版软件和功能齐全但是不让使用的软件。功能不全的软件是不用破解的,就是能破解也没有意义,因为软件本身就没有附带额外的功能。

       先猜测一下这个软件的流程:很有可能就是从注册表里或文件里读取一个标志,看是否已注册,如果未注册就弹出这个窗口,已注册就直接进入主程序。于是我段在了RegQueryValueExA函数,跟了好久没有找到读取注册码的地方,最终迷失在了代码的海洋里 ,既然这个方法不行那就想第二个方法,不达目的誓不罢休。既然它要显示刚开始那个窗口,总得注册窗口类创建窗口类吧,把断点下载RegisterClassA然后继续往下走,总能找到显示这个窗口的入口代码。果断下段,F9运行后,程序停在:

77D2EA5E >  8BFF            mov     edi, edi                         ; USER32.LoadIconA
77D2EA60    55              push    ebp
77D2EA61    8BEC            mov     ebp, esp
77D2EA63    83EC 30         sub     esp, 30
77D2EA66    8B45 08         mov     eax, dword ptr [ebp+8]
77D2EA69    56              push    esi
77D2EA6A    57              push    edi
77D2EA6B    6A 09           push    9
77D2EA6D    59              pop     ecx
77D2EA6E    8D70 04         lea     esi, dword ptr [eax+4]
77D2EA71    8B00            mov     eax, dword ptr [eax]
77D2EA73    8D7D D8         lea     edi, dword ptr [ebp-28]
77D2EA76    F3:A5           rep     movs dword ptr es:[edi], dword p>
77D2EA78    8945 D4         mov     dword ptr [ebp-2C], eax
77D2EA7B    33C0            xor     eax, eax
77D2EA7D    68 00010000     push    100
77D2EA82    50              push    eax
77D2EA83    50              push    eax
77D2EA84    8945 FC         mov     dword ptr [ebp-4], eax
77D2EA87    8D45 D0         lea     eax, dword ptr [ebp-30]
77D2EA8A    50              push    eax
77D2EA8B    C745 D0 3000000>mov     dword ptr [ebp-30], 30
77D2EA92    E8 6AB9FEFF     call    77D1A401
77D2EA97    5F              pop     edi
77D2EA98    5E              pop     esi
77D2EA99    C9              leave
77D2EA9A    C2 0400         retn    4

执行到返回后一路运行,经过CreateWindowExA,这时候那个对话框还未出现,继续运行最后返回到
0044F101  |.  834D FC FF    or      dword ptr [ebp-4], FFFFFFFF
0044F105  |.  8D8D 38FFFFFF lea     ecx, dword ptr [ebp-C8]
0044F10B  |.  E8 347D0600   call    004B6E44
0044F110  |>  F683 CC000000>test    byte ptr [ebx+CC ], 20
0044F117  |.  5F            pop     edi
0044F118  |.  5B            pop     ebx
0044F119  |.  75 13         jnz     short 0044F12E
0044F11B  |.  6A 00         push    0
0044F11D  |.  6A 00         push    0
0044F11F  |.  FF75 0C       push    dword ptr [ebp+C]
0044F122  |.  68 18AB4F00   push    004FAB18
0044F127  |.  E8 96810400   call    <jmp.&TSCUST.TSC_ShowSplashScree>
0044F12C  |.  EB 0E         jmp     short 0044F13C
0044F12E  |>  68 18AB4F00   push    004FAB18
0044F133  |.  E8 84810400   call    <jmp.&TSCUST.TSC_SetParameters>
那个jnz就是关键跳转了,call    就是跳转到非注册的地方了,把jnz改成je就可以了,最后复制到可执行文件,执行后果然没有那个小对话框了。 call    004B6E44就是验证是否注册的过程,ebp+CC应该就是保存序列号的地方,在程序的开始阶段这个地方就被保存进去了一个值,对这个地址内存写入断点发现是经过两次写入的,由于本人是菜鸟,对这个过程没看太明白,哪位高人深入探索了希望能告诉我细节。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道是不是我的RP问题,第一张图貌似挂了...
2011-10-18 08:25
0
雪    币: 959
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
照lz方法做了 去除了干扰屏 但程序About中仍显示未注册 等待大牛解答

运行程序一段时间 再次弹出未注册信息相关窗口
上传的附件:
2011-10-23 11:18
0
雪    币: 9
活跃值: (132)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
4

在你原有基础上改进了一下
附上补丁下载地址
http://www.vdisk.cn/down/index/11323540
上传的附件:
2012-11-8 23:47
0
游客
登录 | 注册 方可回帖
返回
//