首页
社区
课程
招聘
[原创]无源码给程序加VMProtect授权
发表于: 2015-9-30 18:34 31965

[原创]无源码给程序加VMProtect授权

2015-9-30 18:34
31965

无源码给程序加VMProtect授权

不好编辑,图片木有,看附件的pdf吧

作为一个新手,一直以来都听说vmp没有源码写代码的情况下加不了授权,事实也确实如此。但最近闲着无聊,想弄一下vmp的授权,就调用汇编做了个小程序,编译后发现,所谓的SDK,好像只是添加了一个导入表的样子,然后编译的时候替换成壳的内部函数,如果是这样,那可不可以理解成,我添加一个导入表到没有源码的程序里面调用也可以呢?经过多次失败和实践,终于成功。
但在没有源码的情况下毕竟很多东西都很难弄,不是实现不了,是太费劲了,比如分解key,获取时间这些,经过自己写代码测试,发现vmp一个强大之处,手动添加vm地址,可以绑定注册码才可以被正确执行,如果没有正确的lic,即使绕过了授权的代码或者修改授权返回值,一样不会被正确执行,提示:
This code requires valid serial number to run.
Program will be terminated. 可以自行修改                                    
这里的关键是通过vmp的一个api传一个参数,也就是注册码的值去决定的,VMProtectSetSerialNumber,这个,那是不是可以理解为我们只要添加这个到其他程序,然后调用就可以呢,想到这里特别兴奋,自己动手简单的弄了一个,发现还真可以,但是又有个问题,我加授权的话不可能每个程序的lic都放到里面吧,这样也太麻烦了,然后想到ReadFile把内容从文件读取,这样的话就会涉及到好几个api,CreateFile、GetFileSize、ReadFile、CloseHandle,在有源码的情况下当然是好实现,一想到是没源码的情况下做这个,呃,有点要命,在和smny大牛的讨论中他提到用GetPrivateProfileStringA来直接读取配置文件内容,这样下来就只用一个api即可实现读取内容,再次特别感谢smny大牛的提示。
下面就是添加区段来实现读取key和设置key内容了,手动在OD写代码确实有点麻烦,每次都弄太费时间,然后想到自己用汇编写好代码,到时候直接添加区段,当然咯,这样的话最好越省事越好,借鉴了看雪http://bbs.pediy.com/showthread.php?t=182964这个帖子的shellcode那种形式来获取api地址,以下代码思路来自于wjuid大牛


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

上传的附件:
收藏
免费 3
支持
分享
最新回复 (19)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
嗯,估计后面一堆人就会加上 VMP 卖盗版了
2015-9-30 22:31
0
雪    币: 53
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
+1......
2015-9-30 22:52
0
雪    币: 222
活跃值: (185)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
膝盖收下吧
2015-9-30 23:05
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
支持一个,,,,,,
2015-10-1 00:30
0
雪    币: 22
活跃值: (443)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark.
2015-10-1 10:17
0
雪    币: 5568
活跃值: (2148)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不错,简单明了。还有成品!
2015-10-1 10:52
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
说实话,还真不如把程序的开头部分代码地址添加到vm里面,然后选择授权加密
2015-10-1 15:52
0
雪    币: 6538
活跃值: (4496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
如果这样也行,那就不用绕这么多路了                                         
也许是我太菜了,求例子
2015-10-1 18:29
0
雪    币: 519
活跃值: (1452)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
10
文中的例子没KEY也可以运行?
2015-10-1 21:49
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好像VMP必须调用sdk才行,WL可以直接加。
不过VMP的话好像可以修改程序导入表,导入你自己写的一个DL了,你在DLL的初始化调用VMProtectSetSerialNumber
2015-10-2 03:38
0
雪    币: 6538
活跃值: (4496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
12
需要加一下vmp
2015-10-2 08:05
0
雪    币: 6538
活跃值: (4496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
13
最初的时候我想也是,但事实上不可行
2015-10-2 08:07
0
雪    币: 1431
活跃值: (3851)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
被电脑管家拦截,被干掉了
2015-10-11 14:53
0
雪    币: 12
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
vmp授权就这点好,没有正确的lic,代码都是不解密的,哪怕你就是强行patch掉判断lic正确否
2016-3-14 15:34
0
雪    币: 231
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
vmp授权就这点好,没有正确的lic,代码都是不解密的,哪怕你就是强行patch掉判断lic正确否
2016-4-10 07:58
0
雪    币: 176
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
那有VMP授权的就没方法搞定吗?
2016-11-7 11:13
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
patch  rsa,keygen
2018-1-4 20:34
0
雪    币: 6538
活跃值: (4496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
19
rokeys patch rsa,keygen
求教程
2018-1-4 20:38
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
如果有vmp脱壳教程就好了
2018-1-21 22:33
0
游客
登录 | 注册 方可回帖
返回
//