几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(VB.NET/C#)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-29, 05:41 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】用vc++.net实现混编 - 精华帖集合

用vc++.net实现混编 - 精华帖集合
www.dimcax.com
用vc++.net实现混编
net中的编译文件容易被各种工具反汇编,原代码得不到保护,更容易被破解,一直是net应用中的一个软肋。就我应用中摸索的一点体会,提供给大家分享。在net中,只有c++.net可以实现混编,其他语言则无能为力。实现混编以后,在最终生成的托管代码中,可以嵌入x86本地代码,这样,即使被人反编译,本地代码部分也是看不到的,实现了关键算法的保密,可以隐藏了程序代码中的敏感部分,是喜欢net编程人员自我保护的可选方案!我也是初步探索,希望同行们多多研究,互相交流。首先,你需要了解c++建立net程序的基础知识,能建立一个简单的objectarx项目,这个sdk中自带的向导不支持,需要你手工建立。其实很简单,在vs2005中,新建-项目-c+++-clr-类库,然后点完成就可以了。其次,你要添加对sdk中net类库的引用,在项目属性中,选择 通用属性-应用,点击添加新引用,然后加入必须的那两个文件,复制本地属性分别设置为false。最后就是添加代码了:例如我建立项目的时候,项目名称定义为:objectarxtest 那么在objectarxtest.h中添加代码:
现在可以编译了,用netload命令加载入cad2008以后,运行命令test,是不是弹出来一个对话框?成功了!其中代码中#pragma unmanaged与#pragma managed可以写入自己要防止反编译的函数,在后面的命名空间中可以直接调用,但编译以后这部分代码是受保护的。完整项目文件请看附件。附件:
[ ]
支持木头!是不是可以把尽可能多的代码(甚至全部),都进行加密?!
编译为本地代码的部分(也就是你说的加密部分)在外部是不能直接用的,你可以把你所有的东西都写到#pragma unmanaged与#pragma managed之间,然后在后面建立托管命名空间,然后在命名空间进行包装,使外部net可用。当然,#pragma unmanaged与#pragma managed之间的代码是有限制的,不能用托管资源,也就是你不能使用objectarx的托管api了。 [ ]
a
看一下
看一下
了解哈!
路漫漫其修远兮,吾将上下而求索!
搞的这么麻烦,用 .net reactor 混淆一下 dll 一下就搞定了!
好东西
希望多一些c#和c++之间联系的东西
看看
看看
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 11:36 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多