原来我的代码暴露在外面!

写程序的人都有这么一种思想,别人写的代码就希望开源,自己写的代码就进行各种保护,一丁点都不能让别人知道,不得不说这样很自私。以前,我写的应该软件都生成的结果是dll文件或exe文件,原以为这样很安全,其实不然。

比如,现在我用C#写了一个ArcGIS的AddIn插件,默认情况下会生成一个dll文件:

用一个.NET反编译软件可轻松原还源代码,并可以再次进行编译调试,真是不敢想啊!

如果将代码进行加壳,也可进行查壳、脱壳处理!

时间: 2025-01-18 16:17:56

原来我的代码暴露在外面!的相关文章

软件测试对于代码安全的诸多事宜

正如我们所见,软件测试的时候会发生各种各样的问题,尤其是在java语言中,我们可以得知我们的Java语言不同于C/C++等语言,java是解释性语言,因此存在代码被反编译的隐患:每个程序员都可以将任何项目反编译成java代码,导致了我们的代码暴露在他们面前,而某些人便可以通过其进行操作导致某些数据被截取,重新调用.当然在我们真正去编写代码的时候,我们就需要做一些关于代码安全的操作.下面将列出一些关于保证代码安全的知识. 1.1    防止注入SQL a.除了过滤单引号“ ' ”,还要过滤数据库中

android 代码混淆

android 代码 混淆- 原来如此简单 一个xxx.apk提交给测试. ok,去倒杯水,看看网页~~~~~ 呃,忽然觉得 是不是应该 给我的代码 提高点安全性, 记得看过 apk直接可以 解压,然后很容易的就可以 反编译出 .java 找了找,果然,这一切 只不过是 一分钟的事儿, 1.得到 classes.dex文件:直接用你机器上的  解压软件 打开 .apk 文件 解压出 classes.dex 文件,(这个就是 .jar 的前生--- 其实应该说 后世) 2.还原.jar文件:这一步

关于java加壳和代码混淆

关于java加壳和代码混淆 在C中,进行代码加密,首要经过加壳的方法.所谓加壳,即是先将程序代码加密,然后用特定的程序加载器,将代码解密后加载进内存,这样能够在避免代码的反编译,当然,有加壳东西,也有解壳东西,尽管不能100%避免crack,但仍然给代码增加一层有力的维护. 然而在Java中,维护代码是件很困难的工作,由于class文件十分标准,很容易反编译,且反编译后的代码明晰可读.常见的维护办法是运用代码混淆器,打乱class和function以及变量的姓名,能够搅扰反编译后的代码的可读性.

Android仿京东首页轮播文字(又名垂直跑马灯)

Android仿京东首页轮播文字(又名垂直跑马灯) 京东客户端的轮播文字效果: 本次要实现的只是后面滚动的文字(前面的用ImageView或者TextView实现即可),看一下实现的效果 实现思路 上图只是一个大概的思路,要实现还需要完善更多的细节,下面会一步步的来实现这个效果: 1.封装数据源:从图上可以看到,轮播的文字是分为两个部分的,暂且把它们分别叫做前缀和内容,而且实际的使用过程中点击轮播图肯定是需要跳转页面的,而且大部分应该是WebView,不妨我们就设置点击时候需要获取的内容就是一个

零碎的知识点

分类有什么好处呢? 分类可以实现团队开发的便利性,也就是说一个类可以有多个人来实现.另外,分类也可以用来对系统自带的类进行扩充. 那么使用分类有哪些注意点呢? 1. Category可以访问原始类的实例变量,但不能添加变量,只能添加方法.如果想添加变量,可以考虑通过继承创建子类. 2.Category可以实现原始类的方法,但不推荐这么做,因为它是直接替换掉原来的方法,这么做的后果是再也不能访问原来的方法. 3.多个Category中如果实现了相同的方法,只有最后一个参与编译的才会有效. 4.类中

c#winform使用WebBrowser 大全

C# WinForm WebBrowser (一) MSDN资料 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源.必须在附加事件的同一线程上调用 Dispose 方法,该线程应始终是消息或用户界面 (UI) 线程. 3.WebBrowser 使用下面的成员可以将控件导航到特定 URL.在导航历史记录列表中向后和向前移动,还可以加载当前用户的主页和搜索页: 1.URL属性:可读

026-代码创建控件-iOS笔记

学习目标 1.[理解]代码创建控件过程 2.[理解]代码实现QQ登陆界面 3.[理解]图片浏览器 4.[理解]汤姆猫小游戏 一.代码创建控件过程 所有控件都是类的对象,不同的类创建可以不同类型的控件.也是就说创建一个控件其实就是创建一个对应类的对象. 常用控件类型 UIButton:按钮,界面上可点击的大都是按钮 UILabel:标签,界面上只显示文字不能点击大都是标签 UITextField:文本框,界面上可输入数据的文本框 UIImageView:图片框,界面上不可点击的图片大都是图片框 使

【学习笔记】【OC语言】创建对象

一.定义OC的类和创建OC的对象要描述OC中的类分2大步骤:类的声明.类的实现(定义).跟函数类似,函数有分声明和定义1.类的声明1>代码编写*定义一个Car类,拥有2个属性:轮子数.时速,1个行为:跑*类名\属性的命名规则:标示符的规则*类名的命名规范:有意义.驼峰标识.首字母大写 #import <Foundation/Foundation.h> // 类的声明 @interface Car : NSObject { @public int wheels; // 多少个轮子 int

Objective-C基础7 : 类扩展(class extension)

封装的特性就是暴露公共接口给外边调用,C++通过public定义公共方法提供给外面调用,protected和private定义的方法只能在类里面使用,外面不能调用,若外面调用,编译器直接报错,对于变量也同理.OC里面类扩展类似protected和private的作用. 1.类扩展是一种特殊的类别,在定义的时候不需要加名字.下面代码定义了类Things的扩展. @interface Things () { NSInteger thing4; } @end 2.类扩展作用 1)可以把暴露给外面的可读