能力值:
( LV3,RANK:30 )
|
-
-
2 楼
FF70 0A 指令长度 3
FF 70 0A 占据了内存的 3 个字节
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢“yingyue”啊,
发现我还是写不了这个,能不能帮忙看下呀?
004C8694 |. E8 9BC0F3FF CALL Account.00404734
执行到这个语句的时候,
EAX 00E4D25C ASCII "2758682934"
ECX 77D1882A user32.77D1882A
EDX 00E4EF04 ASCII "asdfgg"
EBX 00E4CCF8
ESP 0012F0EC
EBP 0012F11C
ESI 0044E854 Account.0044E854
EDI 0012F298
EIP 004C8694 Account.004C8694
请问内存注册机,用keymake得怎么做呀?
|
能力值:
(RANK:210 )
|
-
-
4 楼
内存方式,选 eax,偏移量为0
第一字节 E8
长度5
中断地址:004C8694
|
能力值:
(RANK:410 )
|
-
-
5 楼
中断地址:004C8694
第一字节:E8
指令长度:5
中断次数:1
注册码保存模式:
eax
4.6 keymaker内存注册机
Q:什么是某个软件的中段地址,指令长度,第一字节,这些数据怎么得到,这些数据在内存注册机中怎么应用?
A:
青色代表着注册码的保存模式
绿色的是中断地址,中断地址一般选择注册码保存模式的下一句,或下几句地址,但必须保证程序中断到这个地址时注册码保存的值没有被任何东西修改或改变。如下面的例子,中断地址可以选在00401205和00401207,但不能选在0040120C这个地址,因为00401207这个Call过后会修改eax的值。
红色的是中断的第一个字节
红色加上蓝色的字节就是指令长度,如下面的例子选的中断地址是00401207,这个地址上有5个字节,所以指令长度是5
00401205 50 PUSH EAX ;eax中保存着真注册码
00401206 52 PUSH EDX ; edx中保存着假注册码
00401207 E8 68 FF FF FF CALL 00401174 ; 比较真假注册码
0040120C 85 C0 TEST EAX,EAX ; 测试注册码真假结果
0040120E 75 42 JNZ SHORT 00401252 ; 假则跳向错误,真则不跳
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
谢谢楼上的,我按照这么写了,为什么弹出的注册码是错误的呀?
|
能力值:
(RANK:410 )
|
-
-
7 楼
你那个“内存模式->寄存器”那个选项也必须选上,并选择“EAX”。还有要去掉那个“宽字符串选项”
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我修改了图片了,我把6楼那张里“宽字符串选项”去掉还是弹不错正确的注册码呀?请问有可能是什么原因呀?
|
能力值:
(RANK:410 )
|
-
-
9 楼
晕,我说去掉“宽字符串”的那个“√”你并没有去掉,而且还加上另外一个没用的“地址指针”
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
这下我这么写,应该没什么问题了吧,可是还是不行……
|
能力值:
(RANK:410 )
|
-
-
11 楼
这次是对了,不过为什么不行只看这里的信息就不太清楚了。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
Account.rar
能不能帮小弟分析下呀,第一次写内存注册机,都已经弄了两天了,帮帮忙吧,谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
我在12楼发附件了,“小虾”什么时候有空麻烦帮忙看看吧,谢谢
|
能力值:
(RANK:410 )
|
-
-
14 楼
看了,那个“偏移”的"+0"去掉就行了。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
算法也很搞笑,注册码就是用“机器码+19810529”。。。估计作者的生日,哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
果然可以了,太感谢啦,这可是我写的第一个注册机啊,哈哈
“小虾”不愧是雷锋啊,也谢谢其他各位了
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
我一直摁F8,知道出现输注册码的窗口都没发现程序去计算过正确的注册码,然后一点“注册”突然就到了个注册码已经出现了的地方,请问你是怎么找到求正确注册码那段的?
|
能力值:
(RANK:210 )
|
-
-
18 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
004C8638 |. 837D F4 00 cmp dword ptr [ebp-C], 0 //注册码不能为空(长度不能是0)
004C863C |. 75 13 jnz short 004C8651
004C863E |. 8B83 0C030000 mov eax, dword ptr [ebx+30C]
004C8644 |. 8B10 mov edx, dword ptr [eax]
004C8646 |. FF92 C4000000 call dword ptr [edx+C4]
004C864C |. E9 D2000000 jmp 004C8723
004C8651 |> 8D55 F0 lea edx, dword ptr [ebp-10]
004C8654 |. 8B83 10030000 mov eax, dword ptr [ebx+310]
004C865A |. E8 EDEBF8FF call 0045724C
004C865F |. 8B45 F0 mov eax, dword ptr [ebp-10]
004C8662 |. E8 291FF4FF call 0040A590
004C8667 |. DD5D F8 fstp qword ptr [ebp-8]
004C866A |. 9B wait
004C866B |. DB2D 60874C00 fld tbyte ptr [4C8760]
004C8671 |. DC45 F8 fadd qword ptr [ebp-8] //开始加法:)
004C8674 |. DD5D F8 fstp qword ptr [ebp-8]
004C8677 |. 9B wait
004C8678 |. DD45 F8 fld qword ptr [ebp-8]
004C867B |. 83C4 F4 add esp, -0C
004C867E |. DB3C24 fstp tbyte ptr [esp]
004C8681 |. 9B wait
004C8682 |. 8D45 EC lea eax, dword ptr [ebp-14]
004C8685 |. E8 861DF4FF call 0040A410
004C868A |. 8B45 EC mov eax, dword ptr [ebp-14]
004C868D |. 50 push eax
004C868E |. 8D55 E8 lea edx, dword ptr [ebp-18]
004C8691 |. 8B83 0C030000 mov eax, dword ptr [ebx+30C]
004C8697 |. E8 B0EBF8FF call 0045724C
004C869C |. 8B55 E8 mov edx, dword ptr [ebp-18]
004C869F |. 58 pop eax
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
谢谢“bithaha”,能写个具体的分析算法的文章就更好啦
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
谢谢“风过无痕”啦,我研究下,呵呵
|
|
|