首页
社区
课程
招聘
[分享]VMProtect 与 ASProtect 在VC中的SDK编程.
发表于: 2007-1-5 17:26 29433

[分享]VMProtect 与 ASProtect 在VC中的SDK编程.

2007-1-5 17:26
29433

最近想用VMProtect和ASProtect 的SDK加密一个程序,结果搞了半天没搞成,网上没看到在VC中如何使用VMProtect的SDK加密,于是琢磨了一下,总算成功了,最后有一点点心得,与大家共享,免得还有人跟我一样走弯路。
   其实VMProtect和ASProtect的SDK编程都差不多,都是在编程时在语句里面插入一个标记(Marker),然后在加壳时,加壳程序就会认出这些标记,并在有标记的地方进行保护。 我觉得这就是最基本的所谓加壳程序SDK编程吧。
   1. VMProtect
    新版的VMProtect没看到好用的,所以这里用的VMProtect v1.2。 (有新的好用的请说一声).  编译环境 VS.Net 2003. 主要参考了文章. VMProtect SDK+ASProtect SDK混合编程[代码演示]  作 者: Anskya  链 接: http://bbs.pediy.com/showthread.php?threadid=20317

   1.1 保护内部函数
    Delphi需要设置Map文件,那VS.Net 2003也需要设置一下,以便产生Map文件,使VMProtect能够识别内部函数,如果没Map文件,VMProtect只能识别导出函数,到时就要自己加函数的地址了.
   VS.Net 2003中,打开 "项目 -> project1属性(假设项目名为project1) -> 链接器 -> 调试 -> 生成映射文件", 改成 "是(/MAP)",这样生成程序时会同时生成project1.map文件。  将project1.exe与project1.map 都拷贝到VMProtect程序夹,用VMProtect加密时,添加新的函数时能够列出很多内部函数,这时只需要选择想加密的内部函数就行了。  如果没Map,只有个输入函数地址的输入筐,没有内部函数列表。
   这里可以省去有些朋友为了加密某个函数,还要用Ollydbg分析程序,找到函数入口地址,然后输入到VMProtect里面来保护的麻烦。
      
   1.2 保护任意位置代码
    在Anskya和那个俄国作者的主页上都只说了Delphi在程序中加入SDK标记。在Delphi 中的标记模式为:

asm                             
  db $EB,$10,'VMProtect begin',0       //标记开始处.
end;
//想保护的程序代码
asm
  db $EB,$0E,'VMProtect end',0	       //标记结束处.
end;
#include "include\aspr.h"  
 VOID Test   
 {  
 USER_POLYBUFFER  
 // some code  
 }  
do {
  USER_POLYBUFFER 
  // some code  
} while();
   // some code  
 #include "include\aspr.h"  
 MessageBox(0,"Begin","",0);  
 #include "include\CppEnvelopeCheck.inc"  //可以在任何位置插入这一句话.
 MessageBox(0,"End","",0);  
 BOOL EnvelopeCheck()   //这个函数放在程序前面就行了。
 {  
 #include "include\CppEnvelopeCheckFunc.inc"   
 }  

 if ( !EnvelopeCheck() ) // .. 邪恶的事情   

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 245
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
哈,多谢老大,搞了个精华,呵呵。
有动力啊,把帖子内的英文大小写都规范了一下,看起来好点。

不知道有没有比较适宜的混合插入方式,强度又高,又不乱,有人教一下没?

最后问一个,我用的ASProtect SKE 2.2 Release build 0425在xp下生成的key能注册,但是windows2003的key is not valid,怎么回事啊?

两个比较弱的问题,帮忙回答一下阿。 谢了。
2007-1-5 17:48
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持!!!!!!
2007-1-5 18:07
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
这么好的文章,支持并学习!
2007-1-5 19:30
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好文章,收藏!
2007-1-6 16:02
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 glucose 发布
哈,多谢老大,搞了个精华,呵呵。
有动力啊,把帖子内的英文大小写都规范了一下,看起来好点。

不知道有没有比较适宜的混合插入方式,强度又高,又不乱,有人教一下没?

........


硬件id不一样..~ 我也有同样的问题..注册机算出来的xp系统能用.03系统就无效了.~ 最后看见.注册机显示的硬件id都不一样..~
2007-1-6 19:02
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
最初由 rokeys 发布
硬件id不一样..~ 我也有同样的问题..注册机算出来的xp系统能用.03系统就无效了.~ 最后看见.注册机显示的硬件id都不一样..~


借楼主的地方问一下,At the moment we use HDD factory number via S.M.A.R.T. interface(40dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4K6M7r3q4U0K9#2)9J5k6h3y4G2L8g2)9J5c8X3k6G2M7Y4g2E0M7#2)9J5c8X3W2F1k6r3g2^5i4K6u0W2M7r3S2H3i4K6y4r3M7$3S2G2N6%4c8G2M7r3W2U0i4K6y4p5z5e0c8Q4x3U0W2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0k6Q4z5e0S2Q4b7f1k6m8M7%4m8J5L8%4c8W2j5%4c8Q4c8e0S2Q4b7f1g2Q4b7V1q4Q4c8e0g2Q4z5f1c8Q4z5f1u0Q4c8e0N6Q4z5f1q4Q4z5o6c8r3b7g2q4Q4c8e0W2Q4z5o6N6Q4z5p5y4S2k6r3#2A6L8W2!0q4y4g2!0m8c8W2!0n7z5g2!0q4y4#2!0m8x3g2!0m8b7#2!0q4y4q4!0n7b7W2!0n7y4V1W2p5i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1^5i4@1q4r3i4@1t1@1i4@1f1$3i4@1t1K6i4K6V1#2i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1u0p5i4K6R3$3i4@1f1#2i4K6R3#2i4@1t1$3i4@1f1#2i4@1q4q4i4K6W2q4i4@1f1$3i4K6W2o6i4K6R3&6i4@1f1@1i4@1u0m8i4K6W2n7i4@1f1%4i4K6V1@1i4@1t1#2i4@1f1^5i4K6R3@1i4K6V1I4i4@1f1@1i4@1u0n7i4K6S2q4i4@1f1$3i4K6V1$3i4@1t1H3i4@1f1#2i4K6R3I4i4K6W2m8i4@1f1^5i4@1u0r3i4K6R3%4i4@1f1%4i4@1t1K6i4@1u0n7i4@1f1%4i4@1u0n7i4K6W2r3i4@1f1#2i4K6V1H3i4K6S2q4i4@1f1%4i4@1p5I4i4@1q4o6i4@1f1@1i4@1u0n7i4@1t1$3d9f1c8Q4c8e0W2Q4z5o6y4Q4b7V1c8Q4c8e0c8Q4b7V1y4Q4z5f1q4Q4c8e0g2Q4z5p5k6Q4z5e0S2Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0k6Q4z5o6S2Q4z5e0q4Q4c8e0k6Q4z5o6y4Q4b7U0y4Q4c8e0W2Q4z5e0N6Q4b7f1g2Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0W2Q4z5o6N6Q4z5p5y4Q4c8e0S2Q4b7f1k6Q4b7U0c8Q4c8e0N6Q4z5f1q4Q4z5o6c8e0i4K6u0W2e0g2)9J5k6f1q4Q4x3X3g2d9i4K6u0W2g2q4)9J5k6b7`.`. interface是什么?
2007-1-7 15:59
0
雪    币: 245
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
硬盘有个S.M.A.R.T.接口。 我那win2003的是disabled的,还以为是这个问题,但是Enable也没用。 我的winxp和win2003不是一台机子。
估计注册机不适合win2003吧。
2007-1-10 13:30
0
雪    币: 242
活跃值: (163)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
好文,支持!
2007-1-10 14:42
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
mark!
2007-1-31 04:35
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
这么好的贴竟然才看到,顶。。。。。。。
2007-4-13 23:42
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习,支持搂住!!
2007-4-14 06:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
看了半天,不懂~~一点不懂~~文章估计是好,但是我不懂~郁闷ing.....
2007-5-27 11:23
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
VMProtec的sdk或者VMProtect的安装版那里下载?
2007-5-31 20:44
0
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
2007-5-31 22:37
0
雪    币: 197
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习!学习!
2007-7-13 16:37
0
游客
登录 | 注册 方可回帖
返回