首页
社区
课程
招聘
[旧帖] [原创]成功破解了天逸通用繁简转换工具(处女破),有注册码 0.00雪花
发表于: 2006-11-3 18:31 5368

[旧帖] [原创]成功破解了天逸通用繁简转换工具(处女破),有注册码 0.00雪花

2006-11-3 18:31
5368
不久前下载了天逸通用繁简转换工具,想用它来转换繁体,不想还要注册码。最近研究crackme,终于安下心破解了它!!并随意获得注册码!
破解过程我就不说了,下面是破解记录和说明。

破解了第一个软件,特地在此庆祝一下!

.text:00404080 sub_404080      proc near               ; DATA XREF: .rdata:00406BB4o
.text:00404080
.text:00404080 var_204         = dword ptr -204h
.text:00404080 var_1A0         = dword ptr -1A0h
.text:00404080 var_160         = dword ptr -160h
.text:00404080 var_120         = dword ptr -120h
.text:00404080 var_D8          = dword ptr -0D8h
.text:00404080 var_D4          = dword ptr -0D4h
.text:00404080 var_D0          = dword ptr -0D0h
.text:00404080 var_CC          = dword ptr -0CCh
.text:00404080 var_C8          = dword ptr -0C8h
.text:00404080 var_C4          = dword ptr -0C4h
.text:00404080 var_C0          = dword ptr -0C0h
.text:00404080 var_AC          = dword ptr -0ACh
.text:00404080 var_10          = dword ptr -10h
.text:00404080 var_C           = dword ptr -0Ch
.text:00404080 var_4           = dword ptr -4
.text:00404080
.text:00404080                 push    0FFFFFFFFh
.text:00404082                 push    offset __ehhandler$?OnFilePrintSetup@CWinApp@@IAEXXZ
.text:00404087                 mov     eax, large fs:0
.text:0040408D                 push    eax
.text:0040408E                 mov     large fs:0, esp
.text:00404095                 sub     esp, 1F8h
.text:0040409B                 push    esi
.text:0040409C                 mov     esi, ecx
.text:0040409E                 push    1
.text:004040A0                 call    ?UpdateData@CWnd@@QAEHH@Z ; CWnd::UpdateData(int)
.text:004040A5                 lea     ecx, [esp+208h+var_AC]
.text:004040AC                 call    registerbutton_403930
.text:004040B1                 push    0
.text:004040B3                 lea     ecx, [esp+20Ch+var_204]
.text:004040B7                 mov     [esp+20Ch+var_4], 0
.text:004040C2                 call    sub_401360
.text:004040C7                 push    offset aJflib_dll ; "JFLib.dll"
.text:004040CC                 lea     ecx, [esp+20Ch+var_10]
.text:004040D3                 mov     byte ptr [esp+20Ch+var_4], 1
.text:004040DB                 call    ??4CString@@QAEABV0@PBD@Z ; CString::operator=(char const *)
.text:004040E0                 push    0
.text:004040E2                 mov     ecx, esi
.text:004040E4                 call    ?UpdateData@CWnd@@QAEHH@Z ; CWnd::UpdateData(int)
.text:004040E9                 mov     eax, [esi+68h]  ; 此值 XOR 292685575 等于客户号,他就是输入的注册码
.text:004040EC                 lea     ecx, [esp+208h+var_AC]
.text:004040F3                 push    eax             ; 6F
.text:004040F4                 call    compare_regcode_4031E0 ; 关键call
.text:004040F9                 test    eax, eax
.text:004040FB                 jnz     short loc_404119
.text:004040FD                 push    eax
.text:004040FE                 push    eax
.text:004040FF                 push    offset aRegisterSucces ; "Register Success!"
.text:00404104                 mov     dword ptr [esi+60h], 1
.text:0040410B                 call    ?AfxMessageBox@@YGHPBDII@Z ; AfxMessageBox(char const *,uint,uint)
.text:00404110                 mov     ecx, esi
.text:00404112                 call    ?OnOK@CDialog@@MAEXXZ ; CDialog::OnOK(void)
.text:00404117                 jmp     short loc_40412E
.text:00404119 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00404119
.text:00404119 loc_404119:                             ; CODE XREF: sub_404080+7Bj
.text:00404119                 push    0
.text:0040411B                 push    0
.text:0040411D                 push    offset aRegisterErr ; "Register err!"
.text:00404122                 call    ?AfxMessageBox@@YGHPBDII@Z ; AfxMessageBox(char const *,uint,uint)
.text:00404127                 mov     dword ptr [esi+60h], 0
.text:0040412E
.text:0040412E loc_40412E:   

关键call

compare_regcode_4031E0 proc near        ; CODE XREF: sub_404080+74p
.text:004031E0
.text:004031E0 VolumeSerialNumber= dword ptr -0BCh
.text:004031E0 CC_FileHandle   = dword ptr -0B8h
.text:004031E0 var_A8          = dword ptr -0A8h
.text:004031E0 var_84          = dword ptr -84h
.text:004031E0 var_4C          = dword ptr -4Ch
.text:004031E0 var_C           = dword ptr -0Ch
.text:004031E0 var_4           = dword ptr -4
.text:004031E0 arg_0           = dword ptr  4
.text:004031E0
.text:004031E0                 push    0FFFFFFFFh
.text:004031E2                 push    offset unknown_libname_5 ; MFC 3.1/4.0/4.2/8.0 32bit
.text:004031E7                 mov     eax, large fs:0
.text:004031ED                 push    eax
.text:004031EE                 mov     large fs:0, esp
.text:004031F5                 sub     esp, 0B0h
.text:004031FB                 push    esi
.text:004031FC                 mov     esi, ecx
.text:004031FE                 lea     ecx, [esp+0C0h+CC_FileHandle]
.text:00403202                 call    ??0CFile@@QAE@XZ ; CFile::CFile(void)
.text:00403207                 push    0Ah             ; nFileSystemNameSize
.text:00403209                 push    0               ; lpFileSystemNameBuffer
.text:0040320B                 push    0               ; lpFileSystemFlags
.text:0040320D                 lea     eax, [esp+0CCh+VolumeSerialNumber]
.text:00403211                 push    0               ; lpMaximumComponentLength
.text:00403213                 push    eax             ; lpVolumeSerialNumber
.text:00403214                 push    0Ch             ; nVolumeNameSize
.text:00403216                 push    0               ; lpVolumeNameBuffer
.text:00403218                 push    offset RootPathName ; "c:\\"
.text:0040321D                 mov     [esp+0E0h+var_4], 0
.text:00403228                 call    ds:GetVolumeInformationA
.text:0040322E                 mov     edx, [esp+0C0h+VolumeSerialNumber]
.text:00403232                 mov     esi, [esi+9Ch]
.text:00403238                 push    0
.text:0040323A                 xor     edx, 11970118h
.text:00403240                 push    8002h
.text:00403245                 push    esi
.text:00403246                 lea     ecx, [esp+0CCh+CC_FileHandle]
.text:0040324A                 mov     [esp+0CCh+VolumeSerialNumber], edx
.text:0040324E                 call    ?Open@CFile@@UAEHPBDIPAVCFileException@@@Z ; CFile::Open(char const *,uint,CFileException *)
.text:00403253                 test    eax, eax        ; GetVolumeInformationA返回成功!
.text:00403255                 pop     esi
.text:00403256                 jnz     short loc_403288 ; 第一个比较,不跳转则注册失败
.text:00403258                 lea     ecx, [esp+0BCh+CC_FileHandle]
.text:0040325C                 mov     [esp+0BCh+var_4], 0FFFFFFFFh
.text:00403267                 call    ??1CFile@@UAE@XZ ; CFile::~CFile(void)
.text:0040326C                 mov     eax, 1
.text:00403271                 mov     ecx, [esp+0BCh+var_C]
.text:00403278                 mov     large fs:0, ecx
.text:0040327F                 add     esp, 0BCh
.text:00403285                 retn    4
.text:00403288 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00403288
.text:00403288 loc_403288:                             ; CODE XREF: compare_regcode_4031E0+76j
.text:00403288                 push    2
.text:0040328A                 push    0FFFFFF64h
.text:0040328F                 lea     ecx, [esp+0C4h+CC_FileHandle]
.text:00403293                 call    ?Seek@CFile@@UAEJJI@Z ; LONG Seek(LONG lOff,UINT nFrom);throw(CFileException);
.text:00403293                                         ; 如果要求的位置合法,则Seek返回从文件开始起的新字节偏移量
.text:00403293                                         ; lOff:指针移动的字节数。
.text:00403293                                         ; nFrom:指针移动的模式。可以是CFile::begin,CFile::current,CFile::end
.text:00403298                 lea     ecx, [esp+0BCh+var_A8]
.text:0040329C                 push    9Ch
.text:004032A1                 push    ecx
.text:004032A2                 lea     ecx, [esp+0C4h+CC_FileHandle] ; 存放输入注册码
.text:004032A6                 call    ?Read@CFile@@UAEIPAXI@Z ; CFile::Read(void *,uint)
.text:004032AB                 mov     edx, [esp+192]  ; 此值实际上就是文本框输入输入注册码,等于客户号 XOR 292685575
.text:004032B2                 mov     ecx, [esp+0BCh+VolumeSerialNumber] ; 堆栈 ss:[0012ECD4]=49E82E67
.text:004032B6                 mov     eax, edx
.text:004032B8                 xor     eax, 292685575  ; 把传入的值XOR 后跟系列号 比较
.text:004032BD                 cmp     eax, ecx
.text:004032BF                 mov     eax, [esp+0BCh+var_84] ; 49E82E67=1239952999 自动输入的客户号
.text:004032C3                 jz      short regsuccess_403329 ; 注册成功!
.text:004032C5                 cmp     eax, ecx
.text:004032C7                 jz      short regerror_4032F0 ; 注册失败
.text:004032C9                 mov     [esp+0BCh+var_84], ecx
.text:004032CD                 push    2
.text:004032CF                 push    0FFFFFF64h
.text:004032D4                 lea     ecx, [esp+0C4h+CC_FileHandle]
.text:004032D8                 call    ?Seek@CFile@@UAEJJI@Z ; CFile::Seek(long,uint)
.text:004032DD                 lea     edx, [esp+0BCh+var_A8]
.text:004032E1                 push    9Ch
.text:004032E6                 push    edx
.text:004032E7                 lea     ecx, [esp+0C4h+CC_FileHandle]
.text:004032EB                 call    ?Write@CFile@@UAEXPBXI@Z ; CFile::Write(void const *,uint)
.text:004032F0
.text:004032F0 regerror_4032F0:                        ; CODE XREF: compare_regcode_4031E0+E7j
.text:004032F0                 lea     ecx, [esp+0BCh+CC_FileHandle]
.text:004032F4                 call    ?Close@CFile@@UAEXXZ ; CFile::Close(void)
.text:004032F9                 lea     ecx, [esp+0BCh+CC_FileHandle]
.text:004032FD                 mov     [esp+0BCh+var_4], 0FFFFFFFFh
.text:00403308                 call    ??1CFile@@UAE@XZ ; CFile::~CFile(void)
.text:0040330D                 mov     eax, 4
.text:00403312                 mov     ecx, [esp+0BCh+var_C]
.text:00403319                 mov     large fs:0, ecx
.text:00403320                 add     esp, 0BCh
.text:00403326                 retn    4
.text:00403329 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00403329
.text:00403329 regsuccess_403329:                      ; CODE XREF: compare_regcode_4031E0+E3j
.text:00403329                 cmp     eax, ecx        ; ecx=硬盘系列号
.text:0040332B                 jnz     short loc_403333
.text:0040332D                 cmp     [esp+0BCh+var_4C], edx
.text:00403331                 jz      short loc_403367 ; 跳往虽然成功但是没有写入注册码
.text:00403333
.text:00403333 loc_403333:                             ; CODE XREF: compare_regcode_4031E0+14Bj
.text:00403333                 mov     [esp+0BCh+var_84], ecx
.text:00403337                 push    2
.text:00403339                 push    0FFFFFF64h
.text:0040333E                 lea     ecx, [esp+0C4h+CC_FileHandle]
.text:00403342                 mov     [esp+0C4h+var_4C], edx
.text:00403346                 call    ?Seek@CFile@@UAEJJI@Z ; CFile::Seek(long,uint)
.text:0040334B                 lea     eax, [esp+0BCh+var_A8]
.text:0040334F                 push    9Ch
.text:00403354                 push    eax
.text:00403355                 lea     ecx, [esp+0C4h+CC_FileHandle]
.text:00403359                 call    ?Write@CFile@@UAEXPBXI@Z ; CFile::Write(void const *,uint)
.text:0040335E                 lea     ecx, [esp+0BCh+CC_FileHandle]
.text:00403362                 call    ?Close@CFile@@UAEXXZ ; CFile::Close(void)
.text:00403367
.text:00403367 loc_403367:                             ; CODE XREF: compare_regcode_4031E0+151j
.text:00403367                 lea     ecx, [esp+0BCh+CC_FileHandle]
.text:0040336B                 mov     [esp+0BCh+var_4], 0FFFFFFFFh
.text:00403376                 call    ??1CFile@@UAE@XZ ; CFile::~CFile(void)
.text:0040337B                 mov     ecx, [esp+0BCh+var_C]
.text:00403382                 xor     eax, eax
.text:00403384                 mov     large fs:0, ecx
.text:0040338B                 add     esp, 0BCh
.text:00403391                 retn    4
.text:00403391 compare_regcode_4031E0 endp
.text:00403391
.text:00403391 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00403394                 align 10h

哈哈,他的注册码就是客户号(硬盘系列号)XOR 292685575(10进制)
注册机就不要做了,用计算器搞掂!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
2
恭喜恭喜。
2006-11-4 12:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
呵呵。我都忘了处女破是什么时候的了。
2006-11-4 13:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,希望你发布更多贴子
2006-11-8 14:46
0
游客
登录 | 注册 方可回帖
返回
//