首页
社区
课程
招聘
[原创]DCG_2_2 算法分析
2006-9-1 17:54 4842

[原创]DCG_2_2 算法分析

vxin 活跃值
10
2006-9-1 17:54
4842
【破文标题】DCG_2_2 算法分析
【破文作者】黑夜彩虹
【破解工具】OD+DeDe
【破解平台】Windows 2K&XP
【软件名称】DCG_2_2 (monkey keygen)
【软件大小】
【保护方式】

1、PEID后,显示:Borland Delphi 6.0 - 7.0 无壳
2、DeDe静态分析,查看到Register入口地址:00466580
3、OD载入,Ctrl+G 00466580 

00466580 55 push ebp  //下断,F9
00466581 8BEC mov ebp,esp
00466583 83C4 E8 add esp,-18

................省略N行代码..........................................

004665E0 8B55 EC mov edx,dword ptr ss:[ebp-14] ; 用户名:vxin
004665E3 66:B9 E14D mov cx,4DE1
004665E7 8B45 F8 mov eax,dword ptr ss:[ebp-8]
004665EA E8 41FCFFFF call DCG_2_2.00466230 ; 算法CALL F7
004665EF 8D55 E8 lea edx,dword ptr ss:[ebp-18]
004665F2 8B45 FC mov eax,dword ptr ss:[ebp-4]
004665F5 8B80 0003000>mov eax,dword ptr ds:[eax+300]
004665FB E8 E8BAFCFF call DCG_2_2.004320E8
00466600 8B45 E8 mov eax,dword ptr ss:[ebp-18] ; 试练码:123456789
00466603 8B55 F4 mov edx,dword ptr ss:[ebp-C] ; 现真码:3B5A2E24
00466606 E8 A1DDF9FF call DCG_2_2.004043AC ; 入EDX
0046660B 75 13 jnz short DCG_2_2.00466620 ; 暴点,不等则跳,跳则over
0046660D 6A 00 push 0
0046660F 68 6C664600 push DCG_2_2.0046666C ; valid key
00466614 68 6C664600 push DCG_2_2.0046666C ; valid key
00466619 6A 00 push 0
0046661B E8 D400FAFF call <jmp.&user32.MessageBoxA>

=========================算法CALL=======================================
00466240 8955 F8 mov dword ptr ss:[ebp-8],edx ; 用户名:vxin
00466243 8945 FC mov dword ptr ss:[ebp-4],eax
00466246 33C0 xor eax,eax
00466248 55 push ebp
00466249 68 E9624600 push DCG_2_2.004662E9
0046624E 64:FF30 push dword ptr fs:[eax]
00466251 64:8920 mov dword ptr fs:[eax],esp
00466254 66:8B45 F6 mov ax,word ptr ss:[ebp-A]
00466258 66:8945 EE mov word ptr ss:[ebp-12],ax
0046625C 8B45 08 mov eax,dword ptr ss:[ebp+8]
0046625F E8 3CDDF9FF call DCG_2_2.00403FA0
00466264 8B45 F8 mov eax,dword ptr ss:[ebp-8] ; 用户名:vxin
00466267 E8 F4DFF9FF call DCG_2_2.00404260
0046626C 85C0 test eax,eax
0046626E 7E 63 jle short DCG_2_2.004662D3
00466270 8945 E8 mov dword ptr ss:[ebp-18],eax
00466273 C745 F0 0100>mov dword ptr ss:[ebp-10],1
0046627A 8B45 F8 mov eax,dword ptr ss:[ebp-8] ; 循环用户名异或
0046627D 8B55 F0 mov edx,dword ptr ss:[ebp-10]
00466280 8A4410 FF mov al,byte ptr ds:[eax+edx-1]
00466284 0FB755 EE movzx edx,word ptr ss:[ebp-12]
00466288 C1EA 08 shr edx,8
0046628B 32C2 xor al,dl ; 异或
0046628D 8845 F5 mov byte ptr ss:[ebp-B],al

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

第一轮:dl=4D ('M') 与 al=76 ('v') 异或 =al=3B
第二轮:dl=22 ('"') 与 al=78 ('x') 异或 =al=5A
第三轮:dl=47 ('G') 与 al=69 ('i') 异或 =al=2E
第四轮:dl=4A ('J') 与 al=6E ('n') 异或 =al=24

用户名:vxin
注册码:3B5A2E24

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 7
打赏
分享
最新回复 (5)
雪    币: 214
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wangxlxk 2006-9-1 18:12
2
0
我个人觉的,写的不太清楚!
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
bfqyygy 1 2006-9-2 16:03
3
0
还行。简单明了!!
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
郝南仁 2006-9-2 18:00
4
0
16进制取后4位(((4DE1>>8) XOR asc(password(头一位)) + 4DE1)*CE6D)+58bf
    (4DE1>>8) XOR asc(password(头一位)这是密码头一位
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
happytown 31 2006-9-3 16:17
5
0
还是鼓励一下原创吧,请joe-lu把该CrackMe作为附件添加上来。方便以后整理。
雪    币: 237
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
luckyxsky 1 2006-9-4 17:30
6
0
正好也看这个来着,贴上注册机
TC2.0下通过。

#include<string.h>
#include <stdlib.h>
#include <stdio.h>

main()
{
        char name[15];
        unsigned int i,len,j;
        unsigned int d=0x4de1;

        printf("Please input your name\n");
        scanf("%s",name);
        len=strlen(name);
        printf("Your sn is ");

        for(i=0;i<len;i++)
        {
                j=(d>>8)^name[i]&0xff;
                printf("%X",j);
                d=(d+j)*0xce6d+0x58bf;
        }

        printf("\nCracked by LuckyXsky.\n");
}
游客
登录 | 注册 方可回帖
返回