首页
社区
课程
招聘
[原创]实时混淆生成的crackme
发表于: 2013-7-1 13:31 9644

[原创]实时混淆生成的crackme

2013-7-1 13:31
9644

前言:

普通可执行文件生成流程

编译 -》 链接 -》 生成可执行文件

实时混淆生成

编译 -》 混淆 -》 链接 -》 生成可执行文件

混淆和链接放在服务器端完成,程序员编译完成后,把obj文件上传至服务器,当用户请求下载时,服务器实时完成代码的混淆和链接,然后把生成的可执行文件发给用户,可以实现发给用户的每个copy都不同。

用途:不知道,好玩而已

下面是一个crackme的 小演示:

vc源码(方便起见,直接在入口加了断点):

#pragma code_seg (".text$unest_9")
char str[100];
void CHelloworldDlg::OnOK() 
{
	_asm{int 3}
	extern char str[100];

    GetDlgItemText(IDC_EDIT1,str,100); 	
	unsigned int tmp = *(unsigned int *)&str;
	memset(str,0,100);
	if (tmp == 0x00333231){ //密码:123
	  ::MessageBox (0,"success","success",0);
	}
    
	//CDialog::OnOK();
}
#pragma code_seg ()

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 5
支持
分享
最新回复 (10)
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
2
膜拜膜拜,这种办法都能想出来......
2013-7-1 13:44
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
只要不是从指定的服务器上下载,就是说下载了一个,然后用这一个分享,混淆啥的就没用了
2013-7-1 14:06
0
雪    币: 189
活跃值: (56)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
这玩意的目的不是用来对抗破解的,好玩而已
2013-7-1 14:10
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
嗯,不过思路还是不错的。
2013-7-1 14:21
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
昨天晚上睡不着,我也冒出了一个类似的想法,把软件提供服务的核心算法部分和校验合法用户的算法部分,捆绑放到分布式COM中,定期更新,这样即使上一次软件破解了,下一次组件更新以后,就需要重新破解,因为COM组件具有运行时卸载和替换的能力,这样不至于更新组件时,导致用户程序重新启动,当然只是想法,欢迎探讨,勿喷
2013-7-1 16:15
0
雪    币: 189
活跃值: (56)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
嗯 。。。这个不是一回事
2013-7-3 14:06
0
雪    币: 110
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sjm
8
不行,下载运行demo.exe出错,异常(0x80000003)位置 0x00401fdc

winxp sp3
2014-10-4 15:54
0
雪    币: 101
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
你确定不是那个自带的int3么
2014-10-5 06:29
0
雪    币: 101
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
123
------------------------
最近也在研究类似的东西,实时混淆的想法很给力,不过混淆强度不是很足的感觉。
2014-10-5 06:31
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
目测拿来反挂和很屌。。。
2014-10-5 10:57
0
游客
登录 | 注册 方可回帖
返回
//