首页
社区
课程
招聘
[求助]破解加密狗 成功一半 请教问题
2008-3-3 10:05 10676

[求助]破解加密狗 成功一半 请教问题

2008-3-3 10:05
10676
破解一加密狗,用OLLYDBG跟踪,最终读出了狗中的存储的信息,通过在跟踪到的DLL
的尾部添加代码,模拟输出狗中信息,在OLLYDBG中运行正常。

  问题是,脱离OLLYDBG单独运行 仍然报告无加密狗。

  用OLLYDBG 和IDA调试运行都正常,不用加密狗。

  想不通是什么原因 如果是CRC校验的话,在OLLYDBG中也应该出错吧

  跟踪过程中有几次异常,但好像也不是异常的原因(我新手)。

  请指教

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (22)
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-3-3 15:05
2
0
传说中的chap708
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-3 16:46
3
0
麻烦解释下 是一种什么手法
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-3-3 17:30
4
0
baidu it
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
skylly 4 2008-3-3 17:39
5
0
啥叫 传说中的chap708
forgot以前搞过一个旧版的aspr,当时那个示例文件叫做chap708

楼主说的程序的思路严重学习: 如果发现在调试器中也不报错,反而让你go it easy。
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-3 17:47
6
0
用PEID看 是 Microsoft Visual C++ 6.0 DLL

CRC16 precomputed table for byte transform
CRC32 precomputed table for byte transform
MD5 transform ("compress") constants
RIJNDAEL (AES): substitution table
RIJNDAEL (AES): inverse substitution table (for decryption)

这么多,怎么下手,晕了。。。
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-3 17:48
7
0
奇怪的是,为什么在OLLYDBG中 就不出错了呢
难道真的是 故意判断在调试环境中就不出错?
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
elance 6 2008-3-3 18:11
8
0
没有那样的思路吧
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-3 18:25
9
0
是啊 可为什么在OLLY中运行一切正常
单独运行就出错呢?

想不通。。。
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-3-3 18:29
10
0
heap maigc?
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-3 18:41
11
0
[QUOTE=;]...[/QUOTE]
heap magic?

怎么对付 什么原理?
雪    币: 451
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Pan88168 2008-3-4 01:44
12
0
没破解成功,返回值可能有错吧, 我以前也出现过这样的问题。。
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-4 07:56
13
0
返回值可能有错 但在调试环境里就正常 ollydbg和ida中均可。

怀疑可能是调试环境的堆和实际环境不一样? 不太懂
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
founder 2008-3-4 09:48
14
0
再仔细检查一下调用狗的地方是否全部搞定了?

有可能跟forgot说的heap magic有关系哦.还有把你修改的地方贴代码片段上来,很有可能你修改方式不对,最好的是木马dll方式,整个替换函数过程.不要直接修改原dll.这样没有法律的问题,破解如果商业化的话,记住不要修改对方的任何文件.
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-4 10:21
15
0
founder说的很道理,多谢多谢。
修改代码如下,从DLL原来位置跳到SECTION空白处,往相应内存写数据

     nop
        nop
        nop
        nop
        nop
        nop
        push    eax
        push    ecx
        push    edi
        cmp     ecx, 0
        je      short s2
        mov     edi, ecx
        mov     dword ptr [edi], 7654321
        mov     word ptr [edi+4], 0FFFF
        jmp     return
        nop
        nop
        nop
        nop
        nop
        nop
s2:
        mov     edi, edx
        mov     dword ptr [edi], 7654321
        mov     dword ptr [edi+4], -1
        mov     dword ptr [edi+8], -1
        mov     ecx, 2F
        mov     eax, 0
        add     edi, 0C
        rep     stos dword ptr es:[edi]
return:
        pop     edi
        pop     ecx
        pop     eax
        jmp     原位置
     nop
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
elance 6 2008-3-4 12:33
16
0
重定位   吧
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-4 19:55
17
0
又看了几篇文章
  应该jmp重定位的原因

  俺是一知半解。。
  是不是可能通过CALL和RET代替JMP 避开重定位啊
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
elance 6 2008-3-4 21:32
18
0
重定位问题论坛讨论的不少,有多种解决方案
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-4 21:35
19
0
看了下代码,JMP指令是 E9 813BFFFF  
应该是16位的相对跳转吧 不需要重定位吧
雪    币: 256
活跃值: (453)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wyqzm 1 2008-3-5 12:56
20
0
看不明白
在dll中应该是相对定位,但都需要重定位的.
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
elance 6 2008-3-5 13:07
21
0
s2:
        mov     edi, edx
        mov     dword ptr [edi], 7654321
        mov     dword ptr [edi+4], -1
        mov     dword ptr [edi+8], -1

要重定位
雪    币: 153
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Phoenix 2008-3-5 13:15
22
0
[QUOTE=elance;424238]s2:
        mov     edi, edx
        mov     dword ptr [edi], 7654321
        mov     dword ptr [edi+4], -1
        mov     dword ptr [edi+8], -1
...[/QUOTE]

呵呵,高人,给内存地址赋值也要重定位?
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
assistx 2008-3-5 14:58
23
0
[QUOTE=elance;424238]s2:
        mov     edi, edx
        mov     dword ptr [edi], 7654321
        mov     dword ptr [edi+4], -1
        mov     dword ptr [edi+8], -1
...[/QUOTE]

这个地方不用重位吧??
游客
登录 | 注册 方可回帖
返回