首页
社区
课程
招聘
[旧帖] 微狗4.0 0.00雪花
发表于: 2007-8-8 16:34 6866

[旧帖] 微狗4.0 0.00雪花

2007-8-8 16:34
6866
转发本论坛改版前的一些关于微狗4.0的资料,现在好像已经查找不到啦。不过本人调试不成功,希望有大侠指点指点!!!!!

我找到4处anti
0101338E 8039CC              CMP BYTE PTR [ECX],CC
0101AD51 8038CC              CMP BYTE PTR [EAX],CC
018C1807 8038CC              CMP BYTE PTR [EAX],CC
0102731C  3CCC               cmp     al, 0CCh
可能还有更多的,全部patch掉。

无狗脱壳,基本方法和3.x的一样,直接patch 01022985
01022985    33C0            xor     eax, eax
01022987    C3              retn

可以走到解码处01016664,解码分为两步
01016783    50              push    eax
01016784    8D45 D4         lea     eax, [ebp-2C]
01016787    50              push    eax
01016788    E8 62660000     call    0101CDEF
做32次迭代运算。后一步在
010167AD    8B4D E4         mov     ecx, [ebp-1C]
010167B0    3108            xor     [eax], ecx
010167B2    8B96 04010000   mov     edx, [esi+104]
010167B8    8D0C3B          lea     ecx, [ebx+edi]
做简单的异或运算,ecx=5E626B11从[102A2BA]内取 DB5538D4 为正确的密钥,这个比较容易得到,直接patch为
0101668B    A1 B2A20201     mov     eax, [102A2B2]
01016690    B9 D43855DB     mov     ecx, DB5538D4
01016695    90              nop
01016696    56              push    esi

call    0101CDEF调用 call    0101CD06解码,
0101CDEF    55              push    ebp
0101CDF0    8BEC            mov     ebp, esp
0101CDF2    6A E0           push    -20
0101CDF4    FF75 0C         push    dword ptr [ebp+C]
0101CDF7    FF75 08         push    dword ptr [ebp+8]
0101CDFA    E8 07FFFFFF     call    0101CD06
0101CDFF    83C4 0C         add     esp, 0C
0101CE02    5D              pop     ebp
call    0101CD06为对称加密算法,加密解密用同一个程序,将push -20改为push 20即为加密。其第二个参数指向要解密的8bytes,第一个参数指向一散列表
0012F7BC  |BAD6142F
0012F7C0  |0005D6B0
0012F7C4  |C2F8C000
0012F7C8  |BAD617C6
这个表是由 调用call 01016619根据[01029908]=BAD617C6的值生成
如果知道明文,暴力破解[01029908]内的key,在p4 1.7g的机器上一次需用大约30分钟。
猜测010018B0处的明文为全0
010018B0  52 9F C4 25 78 A7 96 E9 52 9F C4 25 78 A7 96 E9
010018C0  52 9F C4 25 78 A7 96 E9 52 9F C4 25 78 A7 96 E9
010018D0  52 9F C4 25 78 A7 96 E9 52 9F C4 25 78 A7 96 E9
暴力攻击中。

OEP可以从01029860得到

01029840  00 00 10 00 0D 44 61 0C 00 00 00 00 FF FF FF FF  .. ..Da.....
01029850  07 06 05 04 03 02 01 00 8A 0B 00 00 61 6D 01 01        .?..am  
01029860  9D 73 00 01 D0 A6 5D 40 CF 97 9B 53 47 C9 79 00  漵. 笑]@蠗汼G蓎.
01029870  00 00 01 00 00 00 C2 A6 C3 BA 00 00 00 00 ED 7F  .. ...娄煤....?
01029880  37 8F 31 F5 15 C9 E0 1B 0B 00 00 00 01 00 00 00  7??舌  ... ...
01029890  2E 64 61 74 61 00 00 00 44 41 54 41 00 00 00 00  .data...DATA....
010298A0  44 47 52 4F 55 50 00 00 47 6F 6C 64 65 6E 20 54  DGROUP..Golden T
010298B0  69 64 65 00 50 78 41 00 00 00 00 01 4C 7B 01 01  ide.PxA.... L{  

微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA) 都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。

TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计的。该算法使用 128 位的密钥为 64 位的信息块进行加密,它需要进行 64 轮迭代,尽管作者认为 32 轮已经足够了。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为 δ=「(√5 - 1)231」(也就是程序中的 0×9E3779B9)。

具体实现:
0101CD06    55              push    ebp
0101CD07    8BEC            mov     ebp, esp
0101CD09    8B55 10         mov     edx, [ebp+10]
0101CD0C    53              push    ebx
0101CD0D    56              push    esi
0101CD0E    57              push    edi
0101CD0F    8B7D 0C         mov     edi, [ebp+C]
0101CD12    33F6            xor     esi, esi
0101CD14    85D2            test    edx, edx
0101CD16    8B0F            mov     ecx, [edi]
0101CD18    8B47 04         mov     eax, [edi+4]
0101CD1B    7E 5E           jle     short 0101CD7B
0101CD1D    69D2 B979379E   imul    edx, edx, 9E3779B9
0101CD23    85D2            test    edx, edx
0101CD25    8955 10         mov     [ebp+10], edx
0101CD28    0F84 A2000000   je      0101CDD0
0101CD2E    8B55 08         mov     edx, [ebp+8]
0101CD31    8BF8            mov     edi, eax
0101CD33    8BD8            mov     ebx, eax
0101CD35    C1EF 05         shr     edi, 5
0101CD38    C1E3 04         shl     ebx, 4
0101CD3B    33FB            xor     edi, ebx
0101CD3D    8BDE            mov     ebx, esi
0101CD3F    83E3 03         and     ebx, 3
0101CD42    033C9A          add     edi, [edx+ebx*4]
0101CD45    8BDE            mov     ebx, esi
0101CD47    33D8            xor     ebx, eax
0101CD49    81EE 4786C861   sub     esi, 61C88647
0101CD4F    03D9            add     ebx, ecx
0101CD51    8D0C3B          lea     ecx, [ebx+edi]
0101CD54    8BF9            mov     edi, ecx
0101CD56    8BD9            mov     ebx, ecx
0101CD58    C1EF 05         shr     edi, 5
0101CD5B    C1E3 04         shl     ebx, 4
0101CD5E    33FB            xor     edi, ebx
0101CD60    8BDE            mov     ebx, esi
0101CD62    C1EB 0B         shr     ebx, 0B
0101CD65    83E3 03         and     ebx, 3
0101CD68    033C9A          add     edi, [edx+ebx*4]
0101CD6B    8BDE            mov     ebx, esi
0101CD6D    33D9            xor     ebx, ecx
0101CD6F    03D8            add     ebx, eax
0101CD71    3B75 10         cmp     esi, [ebp+10]
0101CD74    8D043B          lea     eax, [ebx+edi]
0101CD77  ^ 75 B8           jnz     short 0101CD31
0101CD79    EB 52           jmp     short 0101CDCD
0101CD7B    69D2 4786C861   imul    edx, edx, 61C88647
0101CD81    85D2            test    edx, edx
0101CD83    74 4B           je      short 0101CDD0
0101CD85    8B75 08         mov     esi, [ebp+8]
0101CD88    8BF9            mov     edi, ecx
0101CD8A    8BD9            mov     ebx, ecx
0101CD8C    C1EF 05         shr     edi, 5
0101CD8F    C1E3 04         shl     ebx, 4
0101CD92    33FB            xor     edi, ebx
0101CD94    8BDA            mov     ebx, edx
0101CD96    C1EB 0B         shr     ebx, 0B
0101CD99    83E3 03         and     ebx, 3
0101CD9C    033C9E          add     edi, [esi+ebx*4]
0101CD9F    8BDA            mov     ebx, edx
0101CDA1    33D9            xor     ebx, ecx
0101CDA3    81C2 4786C861   add     edx, 61C88647
0101CDA9    03FB            add     edi, ebx
0101CDAB    2BC7            sub     eax, edi
0101CDAD    8BF8            mov     edi, eax
0101CDAF    8BD8            mov     ebx, eax
0101CDB1    C1EF 05         shr     edi, 5
0101CDB4    C1E3 04         shl     ebx, 4
0101CDB7    33FB            xor     edi, ebx
0101CDB9    8BDA            mov     ebx, edx
0101CDBB    83E3 03         and     ebx, 3
0101CDBE    033C9E          add     edi, [esi+ebx*4]
0101CDC1    8BDA            mov     ebx, edx
0101CDC3    33D8            xor     ebx, eax
0101CDC5    03FB            add     edi, ebx
0101CDC7    2BCF            sub     ecx, edi
0101CDC9    85D2            test    edx, edx
0101CDCB  ^ 75 BB           jnz     short 0101CD88
0101CDCD    8B7D 0C         mov     edi, [ebp+C]
0101CDD0    890F            mov     [edi], ecx
0101CDD2    8947 04         mov     [edi+4], eax
0101CDD5    5F              pop     edi
0101CDD6    5E              pop     esi
0101CDD7    5B              pop     ebx
0101CDD8    5D              pop     ebp
0101CDD9    C3              retn

/**********************************************************
   TEA - Tiny Encryption Algorithm
   Feistel cipher by David Wheeler & Roger M. Needham
   (extended version)
**********************************************************/

#define ROUNDS 32
#define DELTA 0x9e3779b9 /* sqr(5)-1 * 2^31 */

#include "ctypes.h"

/**********************************************************
   Input values:   k[4]  128-bit key
      v[2]    64-bit plaintext block
   Output values:  v[2]    64-bit ciphertext block
**********************************************************/

void tean(word32 *k, word32 *v, long N) {
  word32 y=v[0], z=v[1];
  word32 limit,sum=0;
  if(N>0) { /* ENCRYPT */
    limit=DELTA*N;
    while(sum!=limit) {
      y+=((z<<4)^(z>>5)) + (z^sum) + k[sum&3];
      sum+=DELTA;
      z+=((y<<4)^(y>>5)) + (y^sum) + k[(sum>>11)&3];
    }
  } else { /* DECRYPT */
    sum=DELTA*(-N);
    while(sum) {
      z-=((y<<4)^(y>>5)) + (y^sum) + k[(sum>>11)&3];
      sum-=DELTA;
      y-=((z<<4)^(z>>5)) + (z^sum) + k[sum&3];
    }
  }
  v[0]=y; v[1]=z;
}

void cl_enc_block(word32 *k, word32 *v) {
tean(k,v,ROUNDS);
}

void cl_dec_block(word32 *k, word32 *v) {
tean(k,v,-ROUNDS);
}

第一层解码有个ZwQueryInformationProcess
第二层解码有个CreateToolhelp32Snapshot

4.0狗壳很简单,两步: 1、去掉反调试(改一条指令便可);2、破掉狗((改一条指令便可)。

下载地址:

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
路过,顶起来
2007-8-9 09:59
0
雪    币: 206
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
call    0101CD06为对称加密算法,加密解密用同一个程序,将push -20改为push 20即为加密。其第二个参数指向要解密的8bytes,第一个参数指向一散列表
0012F7BC  |BAD6142F
0012F7C0  |0005D6B0
0012F7C4  |C2F8C000
0012F7C8  |BAD617C6
这个表是由 调用call 01016619根据[01029908]=BAD617C6的值生成
如果知道明文,暴力破解[01029908]内的key,在p4 1.7g的机器上一次需用大约30分钟。
猜测010018B0处的明文为全0
010018B0  52 9F C4 25 78 A7 96 E9 52 9F C4 25 78 A7 96 E9
010018C0  52 9F C4 25 78 A7 96 E9 52 9F C4 25 78 A7 96 E9
010018D0  52 9F C4 25 78 A7 96 E9 52 9F C4 25 78 A7 96 E9
暴力攻击中。

如何修改,谁能告诉我!!!!!!!!!!!!!!!!
2007-9-7 20:52
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不能用高级语言,只能用浮点汇编
2007-9-28 12:19
0
游客
登录 | 注册 方可回帖
返回
//