首页
社区
课程
招聘
实践内存注册机变算法注册机之明码篇
发表于: 2006-11-4 21:00 47168

实践内存注册机变算法注册机之明码篇

2006-11-4 21:00
47168
收藏
免费 7
支持
分享
最新回复 (57)
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
26
好东西,学习+支持
2006-11-7 16:52
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
27
laomms 最近写了不少教程
支持
2006-11-7 18:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
我也模仿写了一个明码的,用本机系列号测试成功;但找别人测试注册却没成功.找不出原因,于是就用楼主写的用别人的系列号测试了下也不行,不知是什么原因?

这是TEST.EXE中我的系列号2254069508-58980863,那位帮忙计算一下注册码给我试试,多谢!
2006-11-7 20:35
0
雪    币: 175
活跃值: (2531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
一种新的思路。
2006-11-7 20:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
;********************************************************************
; 如果在机器码处中断,则恢复原来的代码,并写入新的机器码
;********************************************************************              

              invoke  WriteProcessMemory,pi.hProcess,eax,addr UserID,0ch,NULL             ;读入22位机器码
           

;********************************************************************
; 如果在机器码处中断,则恢复原来的代码,并写入新的机器码
;********************************************************************              

              invoke  WriteProcessMemory,pi.hProcess,eax,addr UserID,16h,NULL             ;读入22位机器码

我是菜鸟一个,这里有不懂.这里的机器码应该是不一样的,一个22位一个12位的,

还有不懂的是明码中TEST我的系列号是2254069508-58980863不是22位的,不懂,请教?
2006-11-7 22:08
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
31
最初由 由于 发布
;********************************************************************
; 如果在机器码处中断,则恢复原来的代码,并写入新的机器码
;********************************************************************

invoke WriteProcessMemory,pi.hProcess,eax,addr UserID,0ch,NULL ;读入22位机器码
........


0c是12位,注释写错了.
当然有更简单的方法:
invoke  WriteProcessMemory,pi.hProcess,eax,addr UserID,sizeof UserID ,NULL
这样多长就无所谓了.
2006-11-8 07:30
0
雪    币: 136
活跃值: (429)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
32
真是精彩,呵呵
2006-11-8 12:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
学着明码篇用文中的模板也写了一个明码的,就修改了几个地方.
一个是断点,把下面的2个断点改了
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
BREAK_POINT1   equ 0046CDF6h ;第一个断点
BREAK_POINT2   equ 0046B747h ;第二个断点
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
二目标程序改名为TEST
并且把写入新的机器码的代码改为楼主提供的可以任意位数的代码
但测试注册别的机子一直不能成功,郁闷啊
偶是老菜
希望laomms看到指点一下,多谢!
2006-11-13 13:11
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
34
最初由 由于 发布
学着明码篇用文中的模板也写了一个明码的,就修改了几个地方.
一个是断点,把下面的2个断点改了
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
BREAK_POINT1 equ 0046CDF6h ;第一个断点
BREAK_POINT2 equ 0046B747h ;第二个断点
........


有几点要注意:
1、注意第一个断点你拦到的机器码存储的位置:
首先,需要理解CONTEXT结构,你可以查相关资料,基本上用CONTEXT_FULL就够了,除了CONTEXT_FLOATING_POINT和CONTEXT_DEBUG_REGISTER,假如有涉及浮点或调试寄存器的用另外两个。
我这里:
mov context.ContextFlags, CONTEXT_FULL  ;先存储CONTEXT_FULL 标记
mov eax,context.regEax ;读出此刻寄存器EAX(regEax)的内容,其实EAX指向的就是老机器码的字符串,存储到EAX中
invoke  WriteProcessMemory,pi.hProcess,eax,addr UserID,sizeof UserID,NULL ;将新机器码写入EAX
invoke  SetThreadContext,pi.hThread, addr context ;设置生效,此时EAX变成了新的机器码并参与了算法流程
2、注意第二个断点你拦到的注册码存储的位置及存储格式:
invoke ReadProcessMemory,pi.hProcess,context.regEcx,addr value,sizeof value,NULL;注册码在ECX中,读出并放到value中,此时要注意读出的注册码格式,应软件要求进行转换。10进制?16进制?还是需要再做计算等...

如果目标软件有加壳,可以参考我的另一篇文章.
2006-11-13 14:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
思路不错,学习!~
2006-11-13 15:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
最初由 laomms 发布
有几点要注意:
1、注意第一个断点你拦到的机器码存储的位置:
首先,需要理解CONTEXT结构,你可以查相关资料,基本上用CONTEXT_FULL就够了,除了CONTEXT_FLOATING_POINT和CONTEXT_DEBUG_REGISTER,假如有涉及浮点或调试寄存器的用另外两个。
我这里:
mov context.ContextFlags, CONTEXT_FULL ;先存储CONTEXT_FULL 标记
........


谢谢,再试!
2006-11-13 21:38
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
37
不懂`````
2006-11-16 17:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
好文,学习!!!
2006-11-29 01:08
0
雪    币: 312
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
I服了U!强人一个!
2006-11-29 08:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
koo
40

这么强的贴!把脑壳搞大点先!!
2006-11-29 14:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
?算清楚杂多  佩服
2007-2-9 14:27
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
正在学基础知识! N长时间后 再向你请教! 支持!
2007-2-9 21:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
不明白????????????????................
2007-2-10 01:27
0
雪    币: 191
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
44
请问这里的机器码直观的讲是不是算注册码时需要用到的用户名呢?

我遇到一个程序,他的用户名是这样读取的:

004012F6    68 38304000     PUSH Crackme2.00403038                   ; username

请问如何设置机器码呢?
2007-2-14 23:33
0
雪    币: 215
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
45
果然太强了,这种方法你也想得出来,真是太牛了!
2007-7-3 19:06
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
明码比较有点简单
2009-4-25 15:12
0
雪    币: 605
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cfz
47
进来学习下,谢谢分享了
2009-4-26 15:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
好帖,感谢分享。
2009-5-8 03:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
的确是牛人,佩服!!!
2009-5-14 00:19
0
雪    币: 277
活跃值: (2026)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
50
写的不错,太强了,支持一下
2010-2-5 15:56
0
游客
登录 | 注册 方可回帖
返回
//