首页
社区
课程
招聘
狗壳研究(非求破解不要误会)
发表于: 2006-8-22 22:15 16112

狗壳研究(非求破解不要误会)

2006-8-22 22:15
16112
收藏
免费 0
支持
分享
最新回复 (58)
雪    币: 84
活跃值: (710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
这种狗壳的脱壳极简单,那个eax的值是可以很容易推算出来的。这个值用以解码,简单说,就是xor算法。至于iat的修复,很简单,在iat解码子程序段用自己一小段代码代替,根本就不用用importRec这种工具。坦白讲,彩虹狗几乎所有的狗壳iat处理方式都是一样的。你把彩虹狗的花指令去掉后,你什么都明白了。
2006-8-27 11:11
0
雪    币: 3658
活跃值: (4222)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
27
最初由 orchid88 发布
这种狗壳的脱壳极简单,那个eax的值是可以很容易推算出来的。这个值用以解码,简单说,就是xor算法。至于iat的修复,很简单,在iat解码子程序段用自己一小段代码代替,根本就不用用importRec这种工具。坦白讲,彩虹狗几乎所有的狗壳iat处理方式都是一样的。你把彩虹狗的花指令去掉后,你什么都明白了。


怎么推算,有空兄台指点偶一下吧。
2006-8-27 15:31
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
28
我接触破解就是从打小狗开始的,那个密码的获取方法就是打狗队的饭碗.
其实说白了也不难,你想想异或就知道了~~~~
2006-8-27 16:55
0
雪    币: 438
活跃值: (2699)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
29
果然可以在内存找到正确的EAX值。。。好像还有点规律可循。楼主能否再加一个发出来我找找密码试试
2006-8-28 03:08
0
雪    币: 671
活跃值: (2940)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
我来发个4.0的壳,楼主试试
上传的附件:
2006-8-28 09:07
0
雪    币: 438
活跃值: (2699)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
31
最初由 rooky2000 发布
我来发个4.0的壳,楼主试试

运行后直接出错。2003_sp1系统。
2006-8-28 11:40
0
雪    币: 84
活跃值: (710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
最初由 china 发布
怎么推算,有空兄台指点偶一下吧。

首先,看看程序调用了哪些dll,就可以判断出来是什么编译的。根据C、Delphi、VB的入口地址特征,就可以知道oep处的正确值是多少。例如Vc++ 6.0语言是55 8b ec 6a.
其次,oep地址很容易从狗中看出来。这个我不多说了。
第三,你看看加密后的oep处的值是多少,比如是8e 8d 52 31
第四,我前面说过解码算法是xor算法,所以密码就是上两组数xor出来了。简单吧!

4.0的壳没这么简单,具体破解密码方法我记得看雪有位高人已经说得很清楚了。
2006-8-28 13:07
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
33
强,我测试过,和楼上说的一模一样
拿楼主的test做了测试。
原oep:6A 70 68 E0
加壳后的入口:D9 D7 FB 08
逐个异或运算后的值:B3 A7 93 E8
和楼主说的eax值为:93A7B3E8正好一样。(不过顺序问题,楼上能否指点下)
2006-8-28 16:13
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
34
换个版本就不行了原68,18,95,40
加狗后的入口ep:60,55,8B,EC
逐个运算后:BD c2 3A 9B
而正确的值是:9B3AC2BD(这个顺序就没问题)

请问下,如果判断狗的版本号,不是说了4.0没那么简单,那具体呢?
能否给下高手在论坛中的贴子,谢谢

还有一点就是像VC之类的oep一样有固定的机器码,但是vb呢,他有个push xxxxx地址不一样,机器码就不同。
2006-8-28 16:18
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
35

上面是楼主用的加壳程序,请问是不是从部件号看出,就是3.1.11版本,所以按你说的他低于4.0所以可以用那方法xor运算,事实也证明可以。
我在楼上的那个同样是彩虹的,请问如果判断其版本号!!!
2006-8-28 16:22
0
雪    币: 3658
活跃值: (4222)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
36
最初由 orchid88 发布
首先,看看程序调用了哪些dll,就可以判断出来是什么编译的。根据C、Delphi、VB的入口地址特征,就可以知道oep处的正确值是多少。例如Vc++ 6.0语言是55 8b ec 6a.
其次,oep地址很容易从狗中看出来。这个我不多说了。
第三,你看看加密后的oep处的值是多少,比如是8e 8d 52 31
第四,我前面说过解码算法是xor算法,所以密码就是上两组数xor出来了。简单吧!

........


谢谢老大。

是不是论坛里某兄弟写的那个4.0的壳的分析?
2006-8-28 21:10
0
雪    币: 3658
活跃值: (4222)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
37
最初由 4st0ne 发布
果然可以在内存找到正确的EAX值。。。好像还有点规律可循。楼主能否再加一个发出来我找找密码试试


从内存里找?
2006-8-28 21:11
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
38
来一份本地的,生成密码脚本我已经写出来了。嘿嘿,谢谢大侠们的无私精神。
上传的附件:
2006-8-28 21:27
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
39
如果是3.x的内存里可以找,异或也可以用,两种方法结合着找`~~~`
如果是4.0的,我也解决不了,密码学功底太差了我
再补充一点4.0=3.x+anti+解密算法(不是异或)
也就是说4.0的会ANTI调试器,它首先会用多种方法检测调试器,检测到调试器也会说"没发现硬件狗",来迷惑你,
主要注意的是ZwQueryInformationProcess和CreateToolhelp32Snapshot,
过了这两个ANTI才正式开始读狗
2006-8-28 22:10
0
雪    币: 438
活跃值: (2699)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
40
最初由 kangaroo 发布
来一份本地的,生成密码脚本我已经写出来了。嘿嘿,谢谢大侠们的无私精神。

插狗后正确的EAX值是不是:E4636E20
麻烦看一下,谢谢。我从内存里找出来的。。看看这个规律可不可行。
2006-8-28 23:05
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
41
位置错了,说了在内存中位置不固定滴,eax=93BFBBDD
2006-8-28 23:48
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
42
最初由 skylly 发布
改一处地方试试

最初由 china 发布
shylly的在我的机器上运行也是非法。

解决了一下。

呵呵,你们两份都不能跨平台
http://bbs.pediy.com/showthread.php?s=&threadid=31171
2006-8-29 01:23
0
雪    币: 438
活跃值: (2699)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
43
最初由 skylly 发布
位置错了,说了在内存中位置不固定滴,eax=93BFBBDD


这次是失误了。。劳烦能再发个上来吗
i wanna try again.
2006-8-29 01:28
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
44
已经没有了!!!要找楼主
2006-8-29 01:44
0
雪    币: 438
活跃值: (2699)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
45
晕啊。。。我的“猜想”无法验证了
2006-8-29 01:46
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
46
有什么好的想法怎么不说出来,给大家一起研究下呢?
2006-8-29 02:05
0
雪    币: 438
活跃值: (2699)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
47
还是先自己验证一下比较好。。对狗不是很了解。说出来大家笑话
呵呵 现在就等楼主再发个加壳的程序了。
2006-8-29 02:45
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
48
技术这种大家没什么好笑话的,说出来大家一起讨论不就有结果了,正确的地方大家一起学习,不对的地方大家也会为你指出,望楼讲解下高见。

我先说下吧!!其实当初我就有想法在内存中肯定存在密码的。
后来发现规律不一定,所以也没提。
在程序弹出"没发现加密狗的地方"壳已经对原oep做了一次解码
此时dump下来,我会发现在紧接着pe文件头下面(狗壳一次解码的)很多和密码一样的,难而对于不同程序这些密码存在的地方又不一样(为什么会一样)其实道理很简单,狗壳会把在原oep处的一次解码和我们说的密码在次进行异或,得到正确的代码(二次解码)。那么正确代码中必然会有0吧,大家都知道 任何数异或上自身其结果肯定为,而代码中肯定非常多处0,所以必然在一次解码后,你dump下来的内存,里面有密码。不知是否有错,高手讲解下。
2006-8-29 12:11
0
雪    币: 3658
活跃值: (4222)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
49
找来个VB的微狗3.4的。
上传的附件:
2006-8-29 12:13
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
50
上面的CrackMe密码是:98355C83
具体如何得到请见下贴的24楼:
http://bbs.pediy.com/showthread.php?s=&threadid=31171
2006-8-29 12:40
0
游客
登录 | 注册 方可回帖
返回
//