首页
社区
课程
招聘
[求助][求助]将程序直接改成注册机
发表于: 2012-11-14 09:55 4850

[求助][求助]将程序直接改成注册机

2012-11-14 09:55
4850
我想将一个crackme直接改成注册机,改后的程序却无法打开。
经分析,程序根据注册名生成注册码,存在[ebp-1C],并由关键跳0040CB78控制程序走向,并在0040CBAC的Call处弹出注册正确窗口。
 

我想将程序直接改成注册机,需将0040CB78关键跳NOP掉,将“0040CB9D    68 E6C04000     push    0040C0E6”处的地址改为[ebp-1C]。
 
在OD中经以上修改,输入用户名“12345”,可以弹出注册码。
 
保存修改后程序无法正常运行,用OD载入修改后的程序发现修改部分变成发如下代码。
 
选中0040CB74,右键—查看—可执行文件,显示的代码还是正常的。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是不是有自校验
2012-11-14 10:24
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
你写的那里经过重定位后,指令就变了啊。
2012-11-14 10:53
0
雪    币: 190
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
坐等大牛解答
2012-11-14 11:20
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=sydyzjl;1117582]我想将一个crackme直接改成注册机,改后的程序却无法打开。
经分析,程序根据注册名生成注册码,存在[ebp-1C],并由关键跳0040CB78控制程序走向,并在0040CBAC的Call处弹出注册正确窗口。
 
73462
我想将程序直接改成注册机,需将0040CB78...[/QUOTE]

我已经告诉你原因了,这个程序是易语言写的,krnln.fnr会对你修改的地方进行重定位,导致代码已经不是原来的代码了。
所以出错了。最简单的解决方法是从重定位表中清除这几个地址的信息。
2012-11-14 11:36
0
雪    币: 113
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
重定位的问题
2012-11-14 12:19
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
好了,搞定了。
上传的附件:
2012-11-14 12:26
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
在0040CBAC的位置进行一个jmp hook.

0040CB7E    68 04000080     push 0x80000004
0040CB83    6A 00           push 0x0
0040CB85    68 DFC04000     push crackme1.0040C0DF
0040CB8A    68 01030080     push 0x80000301
0040CB8F    6A 00           push 0x0
0040CB91    68 00000000     push 0x0
0040CB96    68 04000080     push 0x80000004
0040CB9B    6A 00           push 0x0
0040CB9D    68 E6C04000     push crackme1.0040C0E6
0040CBA2    68 03000000     push 0x3
0040CBA7    BB 00030000     mov ebx,0x300
[COLOR="Red"]0040CBAC    E9 16010000     jmp crackme1.0040CCC7[/COLOR] //inline hook

在0040CCC7处写入如下代码。最完美的方案也稍微难一点的方法是直接从重定位表里剔除关于这个地址的重定位信息,由于时间关系也不搞了,可以自己写一个重定位分析软件,删除指定地址重定位,不难吧。
0040CCC7    60              pushad
0040CCC8    8B4D E4         mov ecx,dword ptr ss:[ebp-0x1C] 
0040CCCB    894D A8         [COLOR="Red"]mov dword ptr ss:[ebp-0x58],ecx[/COLOR] //把注册码的指针替换到堆栈里
0040CCCE    61              popad
0040CCCF    E8 D0FFFFFF     call crackme1.0040CCA4
0040CCD4  ^ E9 D8FEFFFF     jmp crackme1.0040CBB1 //跳回去add esp,0x300
2012-11-14 12:29
0
雪    币: 286
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
多谢解答!!
2012-11-14 12:57
0
游客
登录 | 注册 方可回帖
返回
//