首页
社区
课程
招聘
求助加密狗代码分析
发表于: 2010-2-8 19:25 4222

求助加密狗代码分析

2010-2-8 19:25
4222
赛孚耐3.1版狗的DLL文件:
请高手分析一下加密思路
004C1CA0    55                  push ebp
004C1CA1    8BEC                mov ebp,esp
004C1CA3    83EC 54             sub esp,54
004C1CA6    53                  push ebx
004C1CA7    56                  push esi
004C1CA8    57                  push edi
004C1CA9    8D7D AC             lea edi,dword ptr ss:[ebp-54]
004C1CAC    B9 15000000         mov ecx,15
004C1CB1    B8 CCCCCCCC         mov eax,CCCCCCCC
004C1CB6    F3:AB               rep stos dword ptr es:[edi]
004C1CB8    C745 FC 00000000    mov dword ptr ss:[ebp-4],0
004C1CBF    C745 F8 00000000    mov dword ptr ss:[ebp-8],0
004C1CC6    C745 F4 00000000    mov dword ptr ss:[ebp-C],0
004C1CCD    8D45 FC             lea eax,dword ptr ss:[ebp-4]
004C1CD0    8945 F0             mov dword ptr ss:[ebp-10],eax
004C1CD3    833D 20674D00 00    cmp dword ptr ds:[4D6720],0
004C1CDA    75 05               jnz short DogLicen.004C1CE1
004C1CDC    83C8 FF             or eax,FFFFFFFF
004C1CDF    EB 53               jmp short DogLicen.004C1D34
004C1CE1    8BF4                mov esi,esp
004C1CE3    8B4D F0             mov ecx,dword ptr ss:[ebp-10]
004C1CE6    51                  push ecx
004C1CE7    8B55 F4             mov edx,dword ptr ss:[ebp-C]
004C1CEA    52                  push edx
004C1CEB    8B45 F8             mov eax,dword ptr ss:[ebp-8]
004C1CEE    50                  push eax
004C1CEF    FF15 20674D00       call dword ptr ds:[4D6720]                  ; win32dll.DogRead
004C1CF5    3BF4                cmp esi,esp
004C1CF7    E8 A8090000         call <jmp.&MSVCRTD._chkesp>
004C1CFC    8945 EC             mov dword ptr ss:[ebp-14],eax
004C1CFF    837D EC 00          cmp dword ptr ss:[ebp-14],0
004C1D03    75 14               jnz short DogLicen.004C1D19
004C1D05    817D FC 743C0300    cmp dword ptr ss:[ebp-4],33C74              ; 比较软件狗版本
004C1D0C >  75 04               jnz short DogLicen.004C1D12
004C1D0E    33C0                xor eax,eax
004C1D10    EB 22               jmp short DogLicen.004C1D34
004C1D12    E8 59000000         call DogLicen.004C1D70                      ; 软件狗版本不对
004C1D17    EB 13               jmp short DogLicen.004C1D2C
004C1D19    6A 00               push 0
004C1D1B    6A 00               push 0
004C1D1D    68 C8504D00         push DogLicen.004D50C8
004C1D22    E8 65090000         call <jmp.&MFC42D.#1136>                    ; 请确认软件狗插好
004C1D27    83C8 FF             or eax,FFFFFFFF
004C1D2A    EB 08               jmp short DogLicen.004C1D34
004C1D2C    E8 3F000000         call DogLicen.004C1D70
004C1D31    83C8 FF             or eax,FFFFFFFF
004C1D34    5F                  pop edi
004C1D35    5E                  pop esi
004C1D36    5B                  pop ebx
004C1D37    83C4 54             add esp,54
004C1D3A    3BEC                cmp ebp,esp
004C1D3C    E8 63090000         call <jmp.&MSVCRTD._chkesp>
004C1D41    8BE5                mov esp,ebp
004C1D43    5D                  pop ebp
004C1D44    C3                  retn

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
只能看懂这段代码,呵呵。

004C1CB6之前是保护现场,分配了0x54个字节的栈空间并初始化成0xCC。然后看ds:[4D6720]是不是为0,是的话直接返回-1,不是的话调用DosRead函数,传递进去3个参数,前两个是值0,第三个是地址,如果返回值不是0,那么提示“请确认软件狗插好”,然后比较看第三个参数指向的值是不是0x33C74,也就是比较版本,如果不是的话提示软件狗版本不对,如果是的话返回0。

就是这样了。。。。
2010-2-8 20:36
0
雪    币: 86
活跃值: (1038)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
004C1D05    817D FC 743C0300    cmp dword ptr ss:[ebp-4],33C74              ; 比较软件狗版本
004C1D0C >  75 04               jnz short DogLicen.004C1D12

mov  dword ptr ss:[ebp-4],33C74进接赋值
2010-2-8 22:32
0
雪    币: 23
活跃值: (198)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
004C1CDA   /75 05               jnz short DogLicen.004C1CE1          把JNZ改为JE           
004C1CDC   |83C8 FF             or eax,FFFFFFFF
004C1CDF   |EB 53               jmp short DogLicen.004C1D34            
程序跳过狗和够版本的检测,但是软件启动了没有提示,又退出了。
请大师们看看如何修改
2010-2-9 09:42
0
雪    币: 153
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
004C1D03                     NOP
004C1D04                     NOP
004C1D05                     MOV dword ptr ss:[ebp-4],33C74
004C1D0C                     NOP
004C1D0C                     NOP
2010-2-9 10:31
0
雪    币: 23
活跃值: (198)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那个退出解决了,在主程序里0041C9C5     /EB 31             je short TSMain.0041C9F8          必须要跳,不跳就退出,
打开主程序狗掉了,好多按钮能按动,但是按了没有反应,我跟了好半天没有找到地方,请老师指导,由于文件较大不好上传,用QQ传,qq:254861374
2010-2-9 13:03
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
原来是为了绕过这个检查啊,那还不简单,根本没必要修改什么jnz之类的,把这整个函数改成这样:
xor eax,eax
retn
啥都不检查了,直接返回0。
2010-2-9 15:00
0
雪    币: 23
活跃值: (198)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
运行软件好多功能不能用,而且老卡,请高手帮解决一下
2010-2-10 09:33
0
雪    币: 232
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
加我,qq:11951863,把软件发来KK。
2010-7-13 13:57
0
游客
登录 | 注册 方可回帖
返回
//