EbookMaker 1.21
OCG
下面是關鍵的地方.
==============OCG=================================OCG=================================OCG
* Possible StringData Ref from Data Obj ->"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
:004016A5 BEE5E54B00
mov esi, 004BE5E5
:004016AA F3
repz
:004016AB
A5
movsd
:004016AC C745D40A000000 mov [ebp-2C],
0000000A
:004016B3 8B45D4
mov eax, dword ptr [ebp-2C]
:004016B6 40
inc eax
:004016B7
50
push eax
:004016B8 E84BD00900
call 0049E708
:004016BD 59
pop ecx
:004016BE 8945D0
mov dword ptr [ebp-30], eax
:004016C1
33DB xor
ebx, ebx
:004016C3 8B45D0
mov eax, dword ptr [ebp-30]
:004016C6 8BF8
mov edi, eax
:004016C8 3B5DD4
cmp ebx, dword ptr [ebp-2C]
:004016CB 7D61
jge 0040172E
* Referenced by a (U)nconditional or (C)onditional
Jump at Address:
|:0040172C(C)
|
:004016CD 837D0C00
cmp dword ptr [ebp+0C], 00000000
:004016D1 7408
je 004016DB
:004016D3 8B450C
mov eax, dword ptr [ebp+0C] ; This is
your inputed name
:004016D6 8B50FC
mov edx, dword ptr [eax-04] ;
lenth your name
:004016D9 EB02
jmp 004016DD
* Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:004016D1(C)
|
:004016DB 33D2
xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004016D9(U)
|
:004016DD 8BC3
mov eax, ebx
; start clac real sn!!(ebx is the times
of loop)
:004016DF 8BCA
mov ecx, edx
:004016E1 99
cdq
:004016E2 F7F9
idiv ecx
:004016E4
8BF2 mov
esi, edx
:004016E6 46
inc esi
:004016E7 56
push esi
:004016E8
8D450C lea eax,
dword ptr [ebp+0C]
:004016EB 50
push eax
:004016EC E8CF790A00
call 004A90C0
:004016F1 83C408
add esp, 00000008
:004016F4
8D450C lea eax,
dword ptr [ebp+0C]
:004016F7 E8887D0A00
call 004A9484
:004016FC 03750C
add esi, dword ptr [ebp+0C]
:004016FF 8BD3
mov edx, ebx
:00401701 4E
dec esi
:00401702 81E20F000080
and edx, 8000000F
:00401708 0FBE06
movsx eax, byte ptr [esi]
;name
:0040170B 7905
jns 00401712
:0040170D 4A
dec edx
:0040170E 83CAF0
or edx, FFFFFFF0
:00401711 42
inc edx
* Referenced by a (U)nconditional or (C)onditional Jump
at Address:
|:0040170B(C)
|
:00401712 0FBE4C15BC
movsx ecx, byte ptr [ebp+edx-44] ;table2("EBOOKMAKER")
:00401717 03C1
add eax, ecx
:00401719 B924000000
mov ecx, 00000024
:0040171E 99
cdq
:0040171F F7F9
idiv ecx
:00401721
8A441598 mov al, byte ptr
[ebp+edx-68] ;table1
:00401725 8807
mov byte ptr [edi], al
:00401727
43
inc ebx
:00401728 47
inc edi
:00401729 3B5DD4
cmp ebx, dword ptr [ebp-2C]
; the end??if yes then end this loop
:0040172C 7C9F
jl 004016CD
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:004016CB(C)
|
:0040172E 8B45D0
mov eax, dword ptr [ebp-30] ;可以看見sn!!
:00401731 8B55D4
mov edx, dword ptr [ebp-2C]
this is my keygen
==============OCG=================================OCG=================================OCG
#include <iostream.h>
#include <math.h>
#include <string.h>
int main( )
{
char name[99],f[10],sn[0xa];
int i=0,l=0;
static unsigned char table2[]={"EBOOKMAKER"},table1[]={"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
cout<<endl<<" EBook
Maker keygen by [OCG]"<<endl;
cout<<endl<<"Please
input your name:";
cin>>name;
cout<<"Your registration code:";
l=strlen(name);
for (i=0;i<0xA;i++)
sn[i]=table1[(table2[i]+name[i%l])%0x24];
cout<<sn;
return 0;
}
==============OCG=================================OCG=================================OCG
keygen end!
bye:)