首页
社区
课程
招聘
[旧帖] [原创]某net+狗软件破解过程 0.00雪花
2007-12-17 22:43 6360

[旧帖] [原创]某net+狗软件破解过程 0.00雪花

2007-12-17 22:43
6360
【文章标题】: 某net+狗软件破解过程
【文章作者】: 冷面书生
【作者邮箱】: cracker_tao@163.com  QQ:35749778
【下载地址】: 无
【加壳方式】: 无
【保护方式】: 加密狗
【编写语言】: .net
【使用工具】: Peid,OllyDbg,Ida,Reflector.exe
【操作平台】: WinXp,sp2
【作者声明】: 第一次写文章,不足之处请多包含。只是感兴趣,说一个思路,没有其他目的。失误之处敬请诸位大侠赐教。
--------------------------------------------------------------------------------
【详细过程】
   受一朋友所拖,叫帮忙看一软件,欣然应允。拿过软件安装,过程中安装.net2.0framework环境,心中初步估计此软件为一NET软件,OK,继续。安装完成后运行软件,提示无法读取加密狗。用Reflector打开主程序。找到入口函数main(),然后分析(此程序没有混淆,欣喜!)。

ClassGetData为主要的读狗分析类,进入:

通过此段代码可以分析出程序中是如何拿狗中数据来用的。得出结论:读出狗中数据必须大于5位,狗中数据后5位必须与用户ID相等。OK,现在我们可以在程序中在读狗的函数处进行模拟了。回到安装目录,我们可以发现有一htbdog.dll,我们知道次DLL就是软件跟狗进行数据交互的文件。OD载入程序,在读狗函数处下断点。中断到此处:
10001110 >/$  8A4424 04     mov     al, byte ptr [esp+4]
10001114  |.  8B4C24 08     mov     ecx, dword ptr [esp+8]
10001118  |.  66:8B5424 0C  mov     dx, word ptr [esp+C]
1000111D  |.  A2 F8350210   mov     byte ptr [100235F8], al
10001122  |.  66:8B4424 10  mov     ax, word ptr [esp+10]
10001127  |.  890D 04360210 mov     dword ptr [10023604], ecx
1000112D  |.  8B4C24 14     mov     ecx, dword ptr [esp+14]
10001131  |.  66:8915 08360>mov     word ptr [10023608], dx
10001138  |.  66:A3 0A36021>mov     word ptr [1002360A], ax
1000113E  |.  890D F4350210 mov     dword ptr [100235F4], ecx
10001144  |.  E8 1E650000   call    10007667------------------------------------readdog(),通过查开发文档我们知道返回值EAX=0为调用狗成功,同时ECX里保存的为读入的狗内数据。跟踪着个CALL进入我们重新写下返回值。
10001149  |.  8B5424 18     mov     edx, dword ptr [esp+18]
1000114D  |.  A3 F0350210   mov     dword ptr [100235F0], eax
10001152  |.  8902          mov     dword ptr [edx], eax
10001154  \.  C3            retn

///////////////////////////////////////////CALL 10007667进入//////////////////////////////////
7                       push    edx
.text:10007668                 push    ecx
.text:10007669                 jmp     short loc_10007679
.text:10007669
.text:1000766B ; ---------------------------------------------------------------------------
.text:1000766B                 jo      short loc_100076E0
.text:1000766B
.text:1000766D                 jbe     short loc_100076E8
.text:1000766D
.text:1000766F                 jl      short loc_100076F0

.text:1000766F
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我们不管他的代码了,我们自己写,我写的代码如下:
667                                         ; DATA XREF: sub_1000EA5B+69o
.text:10007667                 mov     eax, 24h //循环36次
.text:10007667
.text:1000766C
.text:1000766C loc_1000766C:                           ; CODE XREF: sub_10007667+12j
.text:1000766C                 mov     dword ptr [ecx], 31h   //每次给狗中返回数据写成1        
.text:10007672                 add     ecx, 1
.text:10007675                 dec     eax
.text:10007676                 cmp     eax, 0
.text:10007679                 jge     short loc_1000766C
.text:10007679
.text:1000767B                 xor     eax, eax ///EAX设置为0
.text:1000767D                 retn
OK,完工,把自己改造好的DLL,拷贝过去覆盖原来的,然后输入CUSTOMID的时候输入5个1就可以了。
第一次写破文,有丢丑的地方请兄弟们多多包涵。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
RainBoy_2008 2007-12-18 00:18
2
0
不好意思,有贴图怎么没贴上来啊.
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinglq 2007-12-18 09:55
3
0
楼主太棒了!强烈支持!
雪    币: 3149
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jerryme 2007-12-18 11:21
4
0
支持一下,
游客
登录 | 注册 方可回帖
返回