能力值:
( LV9,RANK:170 )
|
-
-
2 楼
pediy
05499111
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
11111
11111111
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
每位注册码和0F进行与运算 再在后面加上111
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
の,我是说希望有人能从帮我具体讲解下算法那里的汇编码,软件自己写的,算法知道的,自己看汇编却怎么也看不懂算法,只能从VC++源码看出来的。。。
|
能力值:
( LV15,RANK:670 )
|
-
-
6 楼
在自己的算法处下断点,运行后被断在断点下,然后atl+8看对应的反汇编代码,慢慢看就明白了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
0040162C > /8A86 54314000 mov al, byte ptr [esi+403154] ; 按位取 char c=name[i]
00401632 . |8D4C24 10 lea ecx, dword ptr [esp+10]
00401636 . |24 0F and al, 0F ; c^=0x0F
00401638 . |8886 40314000 mov byte ptr [esi+403140], al ; truesn[i]=c;
0040163E . |0FBEC0 movsx eax, al
00401641 . |50 push eax
00401642 . |68 48304000 push 00403048 ; %x
00401647 . |51 push ecx
00401648 . |E8 C9020000 call <jmp.&MFC42.#2818_CString::Format> ; 不管了
0040164D . |83C4 0C add esp, 0C
00401650 . |8D5424 10 lea edx, dword ptr [esp+10]
00401654 . |8D4C24 0C lea ecx, dword ptr [esp+C]
00401658 . |52 push edx
00401659 . |E8 B2020000 call <jmp.&MFC42.#939_CString::operator+=>
0040165E . |46 inc esi
0040165F . |3BF3 cmp esi, ebx ; ebx=strlen(name);
00401661 .^\7C C9 jl short 0040162C
00401663 > 68 44304000 push 00403044 ; 111%x
00401668 . 8D4C24 10 lea ecx, dword ptr [esp+10] ; 此处是转换好的码
0040166C . E8 99020000 call <jmp.&MFC42.#941_CString::operator+=> ; 连接上111
00401671 . 8B45 64 mov eax, dword ptr [ebp+64] ; 真码
00401674 . 50 push eax ; /s2
00401675 . 8B4424 10 mov eax, dword ptr [esp+10] ; |
00401679 . 50 push eax ; |s1
0040167A . FF15 CC214000 call dword ptr [<&MSVCRT._mbscmp>] ; \_mbscmp
算法是按位与0F,然后字符串再连接上“111”
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
非常感谢楼上的“听听雨吧”,谢谢你的分析。。
顺便问下:我的OD不能显示CString::XX类似的东西呀,怎么设置才能显示MFC42里面的东西呢?
如下:
0040162C > /8A86 54314000 mov al, byte ptr [esi+403154]
00401632 . |8D4C24 10 lea ecx, dword ptr [esp+10]
00401636 . |24 0F and al, 0F
00401638 . |8886 40314000 mov byte ptr [esi+403140], al
0040163E . |0FBEC0 movsx eax, al
00401641 . |50 push eax
00401642 . |68 48304000 push 00403048 ; ASCII "%x"
00401647 . |51 push ecx
00401648 . |E8 C9020000 call <jmp.&MFC42.#2818> ;这里怎么不显示CString::Format呢,类似这种情况很多呀
0040164D . |83C4 0C add esp, 0C
00401650 . |8D5424 10 lea edx, dword ptr [esp+10]
00401654 . |8D4C24 0C lea ecx, dword ptr [esp+C]
00401658 . |52 push edx
00401659 . |E8 B2020000 call <jmp.&MFC42.#939>
0040165E . |46 inc esi
0040165F . |3BF3 cmp esi, ebx
00401661 .^\7C C9 jl short 0040162C
00401663 > 68 44304000 push 00403044 ; ASCII "111"
00401668 . 8D4C24 10 lea ecx, dword ptr [esp+10]
0040166C . E8 99020000 call <jmp.&MFC42.#941>
00401671 . 8B45 64 mov eax, dword ptr [ebp+64]
00401674 . 50 push eax ; /s2
00401675 . 8B4424 10 mov eax, dword ptr [esp+10] ; |
00401679 . 50 push eax ; |s1
0040167A . FF15 CC214000 call dword ptr [<&MSVCRT._mbscmp>] ; \_mbscmp
00401680 . 83C4 08 add esp, 8
00401683 . 85C0 test eax, eax
00401685 . 75 15 jnz short 0040169C
00401687 . 6A 40 push 40
00401689 . 68 3C304000 push 0040303C
0040168E . 68 30304000 push 00403030
00401693 . 8BCD mov ecx, ebp
00401695 . E8 6A020000 call <jmp.&MFC42.#4224>
0040169A . EB 0E jmp short 004016AA
0040169C > 6A 00 push 0
0040169E . 6A 00 push 0
004016A0 . 68 20304000 push 00403020
004016A5 . E8 78020000 call <jmp.&MFC42.#1200>
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
cfan123
361e123111
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
[QUOTE=abcluoasp;734220]非常感谢楼上的“听听雨吧”,谢谢你的分析。。 顺便问下:我的OD不能显示CString::XX类似的东西呀,怎么设置才能显示MFC42里面的东西呢?
如下:
0040162C > /8A86 54314000 mov al, byte ptr [esi+4...[/QUOTE]
OD中选【调试】->【选择导入库】 把附件中的MFC42.LIB和MFC71.LIB添加进去
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
哦,这样啊,呵呵,会了,谢谢。。。
|
|
|