反编译的共性
Ⅰ 关于VB反编译的问题
VB6以后的产品有防止反编译的手段,所以不可能像从前那样得到完整的工程文件,也即是说,目前不能再更改编译过后的EXE了,除非你有源码。
Ⅱ 什么是逆向工程什么是反编译可以根据已经封装好的程序软件进行破解分析出源代码吗
逆向工程就是根据已有的程序来反推出源代码以及原来的工程设置,反编译就是具体的将已经编译好的程序进行反向工程,从而获取部分源代码。一般来说,逆向工程或者反编译是无法百分之百获得源代码的,只能从一定程度上来自源代码进行猜测,因此根据已经封装好的程序软件来进行破解分析出源代码的可能性并不大,逆向工程的意义并不在于破解源代码,而是在于了解软件本身的设计,对于复杂的程序软件而言破解源代码的可能性几乎为零。
Ⅲ 做网页设计师好还是做程序员好呀
希望在没人回答这个问题之前,你不仅仅只是在等人回答,也有在积极的思考。一个人在社会上珍贵的不是你懂各种技术或者能力(如编程或者设计),而是你的思考能力,能 分析、化解问题,才能所向无前。
1、程序员——编程技术
2、网页设计师——美工(设计能力)+编程技术
3、网页美工——设计能力
现在企业需要的应该是第二种,能够解决综合问题的也是第二种,如果真是找不到工作,能够方便的自主创业的也是第二种,所以,答案明了了吧。另外如果你如果是个敏感的人,应该能感受到“图形+程序”的结合会有多么大的魅力可以挖掘。
艺术专业是彰显才气的行业,从没有那种必须怎样怎样的死板,关键在于思变,只要想通了,就没有什么阻碍。这么说可能听得有点迷糊。
下面就说一下你这种情况如何去学:
第一,用一个中国淳朴的简单二分法来分析,设计也分为“艺术+技术”。
(1)艺术部分是我们对美感的把握,或者说鉴赏能力,也包含体会美感及其他感觉是否敏感,及是否有洞察力(洞察力不是用眼看,是用脑看)。只要够敏感,生活中的美我们都可以吸收并且体会,这生活包括古今中外,任何我们可以接触到的东西,接触不一定是摸,任何方式都可以,看到、听到、读到,何种途径都无所谓,这是在积累,以备在合适的时候发挥。
(2)技术部分是我们来表现美及其他各种感觉以及各种内容的能力,里面包含很多繁复的小事,如用笔画图(各类素描草稿、线稿、彩稿等等)、用计算机(各种做图的软件 、以及各类的电脑外设数位板、扫描仪类)等等。
是不是听起来很头大,不要紧,继续向下看。
第二,上面的听起来很麻烦,的确,不进一步分析,是很麻烦,且往下看:
针对第一里面的(1),有点绕嘴是吧,那就默读吧,我始终在强调“敏感”及“感觉”这两个词,意思是让你敏感的去感受各种感觉,并记住什么样的东西(这东西可以是任何事物,或者任何事物的一部分)给你什么样的感觉,比如一盘番茄炒蛋,你可以去体会整道菜(整体感好不好,是完善还是支离破碎,给心理什么感觉),也可以琢磨它的颜 色(对比可好,是否靓丽,色泽是否有食欲,给心理造成一个什么样的结果),也可以琢磨它的味道(是否是纯正的香味,是否有放了葱段来去除酸头,给心理一个什么感受) ,也可以研究它切的形状(各种形状给人的心里感受不一样,是由促进作用,还是有抵触作用),也可以研究称它的盘子(盘子为了内容存在,可否喧宾夺主,原因何在?是颜色有问题,还是形状有问题),也可以研究它的营养(什么营养什么颜色,什么人需要,什么人喜爱,什么人忌口),你也可以研究番茄蛋和盘子之间的比例(社么比例给人实惠感觉,什么比例个人偷工减料的感觉,什么程度可以很好的平衡达到刚刚好)等等等等,只要你有一条分析的标准,就可以找出一条分析的思路,各种感觉是可以无限的,正所谓一物一干坤,最后只怕语言本身有界限而没有词汇去形容,不然是可以无限体会的。是不是看到这更头大了,不要紧,因为还没说怎么不头大,呵呵,既然你是学编程的,对“反编译”这个词应该不陌生,设计方面亦如此,我们同样可以通过“反编译”别人的优秀作品来给自己补充营养(注意:这里和什么抄袭、模仿没有一点关系)。比如你,要在进入网页设计行之前,先花一个晚上来思考,这个行业中公认的“优秀”在哪里,如果思路快的话,很容易想到韩国网页作品在中国的风靡,有感觉吗?别说没感觉,好,有一点常识认识也行——行内人都在捧他们、盗用他们吗,所以,相对来说优秀,在网络上或者书店查一下关于韩国优秀网站的收录(网上直接可以看到真实产品,书店里有收录成册的,要么放在网页设计书架上,要么放在艺术设计书架上),在看过十个八个之后,是否能感受到他们的一些共性?是不是他们用的“渐变”挺多,是不是相对的设计细节较多,如果同样能感受到,那你就有所得了,只要你在第二天的设计里,适当应用一些渐变,你的设计效果立马就会有改观,这招欢迎试用,无效也不退款,因为没收款。说到这明白了吗,我们在成功的作品之中找到了规律,到底有多少规律那,基本上应该是无限,我找了好多,貌似还没有看到边的时候。谈到这里有点跑题哈,跑出了讨论第一里面(1)的范围,那再回来,他们每个网站是各有个的宣传主题,比如是育婴网站啦、还是养老院啦等等,每种用的渐变和颜色都不同,什么样的渐变和颜色把网站的主题表现的淋漓尽致了哪?这又需要我们有准确的感受,那又有什么颜色同这些颜色一样可以表现这种感觉或那种那?至此我们有找到了一些共性,下一秒我们的这些研究成果就有可能又派上用场。如果善用这些方法,一天我们会有很多收获,即使一天收获一条(远远大于1,运用“一目记”的技巧,看到就可记,瞥一眼就知道什么颜色,这个瞥一眼就知道颜色男生用的多),一年也很可观,这样我们就可以同情的看着那些脑子不好使、不思考的人在哪里向外憋作品。
针对第一里面的(2),用计算机对学编程的人来说就是家常便饭了,只要是计算机,无论用那种系统,基本大同小异,现在做设计用的基本就是Windows平台、Mac平台,当然你非要拿linux平台的GIMP来做图也不是不可以,但是这样耍个性没人会仰慕你。软件吗,大多都是鼠标、键盘操作,更是大同小异了,比如平面软件,只要你会了Photoshop,其他平面软件基本就是一马平川了。看看软件自带帮助,知道基本操作,脑中要有设计的最终效果,然后用基本操作基本就搞定,网上教程适当看,见过很多为了一个小效果动用几十次滤镜的主,软件是用的很拽,但那效果其实只需要用笔刷两刷子。
第三,没有谁是绝对的对,或者永远的对,所有东西都在变化,一定要自己思考,也许今天我用这些方法成功了,明天你用这方法也成功了,但是后天也许这些东西就会被新的思维给淘汰,但想回来,万变不离其宗,所以要抓住最基本的,驾驭最前卫的,一定要时刻自己的脑不离身,离了就挂了。有的人在做一个行业,有的人在研究一个专业,我们如果能始终坚持一边研究一边做这个行业,总会有别人所不能企及收获。
希望以上的文字对你有所帮助,也许一时这点文字并不能帮你找到方向或者大彻大悟,但偶真切的希望这能作为一个引子,让每个看官都能再次把我们本来就具有的东西——思考功能重拾。我是“唐僧派”设计师K,希望大家都更上层楼——“思之、思之,神鬼通之”,共勉~
Ⅳ 反编译是违法的吗
反编译是违法的,反编译是指计算机软件反向工程( Revers e engineering )也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
根据《共和国着作权法》规定有下列侵权行为的,应当根据情况,承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任:
(一)未经软件着作权人许可,发表或者登记其软件的;
(二)将他人软件作为自己的软件发表或者登记的;
(三)未经合作者许可,将与他人合作开发的软件作为自己单独完成的软件发表或者登记的;
(四)在他人软件上署名或者更改他人软件上的署名的;
(五)未经软件着作权人许可,修改、翻译其软件的;
(六)其他侵犯软件着作权的行为。
Ⅳ 如何将java中的.class文件反编译
安装Java jdk后
看安装目录里有没有jad.exe,没有要下载,一般都有的
配置Java环境变量
开始-运行-cmd-回车-进入命令行窗口:
cd+空格+class文件所在路径:
按下面的命令进行反编译:
例如:[2] jad -sjava example.class 回车
在目录里可以看到example.java源文件
[1] 反编译一个class文件:jad example.class,会生成example.jad,用文本编辑器打开就是java源代码
[2] 指定生成源代码的后缀名:jad -sjava example.class,生成example.java
[3] 改变生成的源代码的名称,可以先使用-p将反编译后的源代码输出到控制台窗口,然后使用重定向,输出到文件:jad -p example.class > myexample.java
[4] 把源代码文件输出到指定的目录:jad -dnewdir -sjava example.class,在newdir目录下生成example.java
[5] 把packages目录下的class文件全部反编译:jad -sjava packages/*.class
[6] 把packages目录以及子目录下的文件全部反编译:jad -sjava packages/**/*.class,不过你仍然会发现所有的源代码文件被放到了同一个文件中,没有按照class文件的包路径建立起路径
[7] 把packages目录以及子目录下的文件全部反编译并建立和java包一致的文件夹路径,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 当重复使用命令反编译时,Jad会提示“whether you want to overwrite it or not”,使用-o可以强制覆盖旧文件
[9] 还有其他的参数可以设置生成的源代码的格式,可以输入jad命令查看帮助,这里有个人做了简单的翻译:jad命令总结
[10] 当然,你会发现有些源文件头部有些注释信息,不用找了,jad没有参数可以去掉它,用别的办法吧。
Ⅵ 反编译的准确率有多高。
不是,100%
Ⅶ Java反编译工具的用法
反编译得出的代码,是JAVA文件在生成CLASS文件时,做过优化的代码。
所以跟你的原文件不一样(比如:注释全没有,中文全变成Unicode码,字符串连接全部用StringBuffer类来代替,自动增加else语句等等)。
所以,你要是想修改反编译出来的代码,可以:
1、将反编译出的代码复制到一个新建的类文件里
2、运行这个文件
3、根据错误提示,进行修改
以上是,我用过的方法。
Ⅷ 为何C和C++编写生成的可执行程序不可反编译回源程序
因为不同的源程序经过编译可能得到相同的可执行程序,因此如果反向操作就存在二义性了
Ⅸ 请问什么是反编译,原理是怎么样的
反编译
高级语言源程序经过
编译
变成可执行文件,反编译就是逆
过程
。
但是通常不能把可执行文件变成高级语言
源代码
,只能转换成
汇编程序
。
计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人
软件
的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的
软件产品
所使用的
思路
、
原理
、
结构
、
算法
、处理过程、运行方法等设计
要素
,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
Ⅹ 如何有效的防止Java程序被反编译和破解
由于Java字节码的抽象级别较高,因此它们较容易被反编译。下面介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。
1.隔离Java程序
最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离Java程序。
2.对Class文件进行加密
为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。
在实现时,开发人员往往通过自定义ClassLoader类来完成加密类的装载(注意由于安全性的原因,Applet不能够支持自定义的ClassLoader)。自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载到JVM当中。在这种保护方式中,自定义的ClassLoader是非常关键的类。由于它本身不是被加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法被攻克,那么被加密的类也很容易被解密。
3.转换成本地代码
将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用。当然,在使用这种技术保护Java程序的同时,也牺牲了Java的跨平台特性。对于不同的平台,我们需要维护不同版本的本地代码,这将加重软件支持和维护的工作。不过对于一些关键的模块,有时这种方案往往是必要的。为了保证这些本地代码不被修改和替代,通常需要对这些代码进行数字签名。在使用这些本地代码之前,往往需要对这些本地代码进行认证,确保这些代码没有被黑客更改。如果签名检查通过,则调用相关JNI方法。
4.代码混淆
代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。下面我们会详细介绍混淆技术,因为混淆是一种保护Java程序的重要技术。