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

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(VB.NET/C#) (http://www.dimcax.com/hust/forumdisplay.php?f=176)
-   -   【转帖】用vc++.net实现混编 - 精华帖集合 (http://www.dimcax.com/hust/showthread.php?t=14166)

yang686526 2009-04-29 05:41 PM

【转帖】用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++之间联系的东西
看看
看看


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