反编译自己的程序

原创 2006年04月22日 15:51:00

先说说来由。

反编译自己的程序是应为一个叫做SkyPE的即时聊天工具。

它有着最好的网络语音聊天质量

怎么比较呢?

就拿QQ开刀吧,使用了SkyPE的语聊以后,你就再也不会使用QQ的语音聊天功能了。

然而他却是用Delphi写的。

在他的安装文件夹下,有两个exe文件:(新版2.0)

一个主程序,另一个程序居然还是Delphi7的那个默认的图标 :)

心里一想,牛,全是用Delphi写的。

有很多人说Delphi快死了,其实,我觉得,

到了目前为止,人们对Delphi的认识,才更进一步的加深了,知道她擅长做什么

现在网络上满天飞的共享软件不乏有她的优秀作品,

例如,让你感觉不到网络存在的在线音乐播放器——KuGoo

当然,商业软件中也不乏她的存在——WPS Office 2005 和 金山毒霸(2002) 的界面。

不过这都是后话。

SkyPE的优秀让我的好奇心想知道,它到底是怎么做的。

于是乎,就找到了闻其名,而很少用的 DeDe 3.50.02

一个文件好办,直接反编译,三四分钟后

结果出来了,我认为,能得到的信息就是每个窗体的类名

还有一些事件的名字,其他的自行添加的方法连名字都得不到。

我这个人不太懂汇编,不过看看它反编译后的注释,

也只知道,某个方法内用到了什么类,至于做什么我就不太明白了。

hoho,转念一想,为什么不反编译我做的程序呢?

说干就干,就是经过三四分钟,结果出来了。

凭着类名,我找到了我程序中的一个比较关键的类,里面有着一些隐蔽的信息。

打开后,心里平静了一下,

因为我的那些方法的名字都显示不出来,呵呵

然后我对每个方法的汇编码进行察看,

依稀找到了关键方法。

早在多年前我就知道有DeDe这个玩意儿了

所以代码里也做了些手脚,

以我那粗浅的汇编水平来,我很难得到一些关键的信息。(仰天长笑中.....)

不过,也不是这么完美,在方法中使用的SQL语句还是部分的暴露了出来。

以后有机会就隐掉它。

最后,我关掉了DeDe,总结出以下几条反DeDe的经验:

一、如果可能的话,关键部分的类名和对象名最好不要那么直白。

二、如果可能的话,代码中事件的生成不要用Delphi的属性编辑器来生成,而要手工生成。

三、如果可能的话,程序中最好不要出现明文的字符串。

四、如果可能的话,不要直接发布Delphi编译好的程序。

五、如果可能的话,不要使用Delphi提供的和那些知名的控件。

六、上面的五条绝对是原创,今后,如果你真的在某个地方看到了,那么你至少可以知道我是在哪儿抄的。呵呵。

最后再来补充一下,如何简单的判断一个程序是不使用Delphi编的。

简单点的,就是在一个程序任务栏按钮里,右键点击,如果弹出菜单只有还原,最小化和关闭那么他60%是用Delphi/C++Builder写的。

复杂点的。

首先,要让你得Windows是动画的,怎么说呢?就是你能看到程序最大化和最小化的动画。

然后,打开一个程序,让它显示在桌面上,然后鼠标点击“显示桌面”。

这时,你应该可以看到桌面了。然后在任务栏里点击刚才的那个程序。

如果,窗口的还原动画,像平常一样,由任务栏飞出,变成原来一般大小,那它97%不是用Delphi写的。(如果是的话,那么它就太不经济了),如果窗口的还原动画是飞向屏幕的正中间的一个点上,然后整个窗口突然出现,嗬嗬,那它99%是用Delphi/C++Builder写的。原因很简单,就是VCL有一个隐藏的TApplication。

OK,就这么多了。

使用Dotfuscator加密混淆程序以及如何脱壳反编译

混淆演示 首先介绍如何使用Dotfuscator对.net程序加密码混淆/加壳 C#或vb.net编写的应用程序或DLL。 这里随便创建了一个C#的命令行控制台程序。程序很简单,对当前的时间进...

使用ILSpy软件反编译.Net应用程序的方法及注意事项

通过ILSpy软件进行反编译.Net程序的步骤,以及其中遇到的问题还有解决方法!...

使用VS自带的混淆器(dotfuscator)防止你的程序被反编译

使用VS自带的混淆器(dotfuscator)防止你的程序被反编译         在上篇文章:《保护你的DLL和Code不被别人使用》。 虽然能使你的代码不被别人直接引用,但却阻止不了使...

记一次android程序反编译并二次打包的过程

在安全界有一句话叫不懂攻,焉知防。前几天看到有一个问题在问Android端目前防止二次打包的方法有哪些?我想从攻击的角度来说这个问题。在分析过程中讲解每一步都有哪些防范手段。下面以一个市面上大公司的a...
  • zgzczzw
  • zgzczzw
  • 2016年09月26日 12:48
  • 1885

IIS处理浏览器请求的流程 | 应用程序的生命周期 |反编译工具用法 |管道事件

我曾在(发布网站 IIS部署网站)一文中说到 我们在IIS上部署一个网站的时候(我们在Internet 信息服务(IIS)管理器,对应网站的右边>编辑网站>基本设置,可以看到,网站名称与应用程序池的名...

JAVA 如何反编译的自己的程序

反编译的工具有好多, 在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj J...

Android如何防止apk程序被反编译

作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在androi...

(爱加密系列教程十)apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

Android应用的UI越来越漂亮,遇到喜欢的我们可以通过反编译,得到应用的源代码借鉴下别人的思想。 具体步骤: 1.下载 apktool 下载地址:https://code.google.co...

Android如何防止apk程序被反编译

作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sd...

使用Reflactor反编译.Net程序

Reflactor是.net下的免费反编译工具,具体使用这里就不介绍了。Reflactor在某些情况下是很必须的,当遇到bug的时候,可以通过Reflactor看其内部的实现机制,从而找到真正的bug...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:反编译自己的程序
举报原因:
原因补充:

(最多只允许输入30个字)