导航:首页 > 源码编译 > 编译和破解

编译和破解

发布时间:2022-05-22 17:54:50

Ⅰ 如何有效的防止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程序的重要技术。

Ⅱ 如何破解C语言编写的软件

c语言写的程序很难反编译、破解的,即使可以,也不可能得到源码的。编译的完成后已经转化为机器语言了,不是完全可逆的过程
反汇编还是可以的。不过静态反汇编之后看代码不用指望能看得懂。
使用调试工具,比如:SoftICE和WinDBG
想要反编译得到C代码基本上已经是不可能的了。编译之后,特别是优化之后,早就已经面目全非了,没有办法还原回去。

Ⅲ C#软件如何良好的防止反编译被破解

1. .NET这个技术其实是适合用来做互联网软件的,不适合用来开发单机软件,所以其中一个思路就是把你的产品给互联网化,引入服务器参与。2. .NET也有将代码转换为本机代码的办法,.NET开发包里有个叫NGEN的工具,可以把中间代码客户端转换成本机代码客户端,用转换后的客户端来进行发布,一方面可以增强运行的性能,另一方面也加大了破解的难度。

如果要从根本上解决你的问题,办法就是不把所有代码放到客户机上,比如说大部分代码放在云上执行,让用户无从破解。

Ⅳ 如何使用安卓反编译破解游戏

一、dexmp方法
dexmp是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件mp到txt文件中:
D:/Program Files/android-sdk-windows-1.6_r1/platforms/android-1.6/tools>dexmp.exe -d classes.dex > spk.mp.txt
得到的文件内容,描述了类的信息,但实在是不好读啊~~~~

二、dex2jar + XJad 方法

该方法是使用dex2jar.jar包,将classes.dex文件解包成jar,在通过XJad(或者其他class反编译工具)进行java反编译。如:
1、dex2jar.bat d:/play/classes.dex
默认的输出路径同classes.dex,生成的文件名为classes.dex.dex2jar.jar
2、使用XJad反编译该jar包
之后的使用方法,大家都懂的:)

该方法的好处在于,通过XJad反编译后,大家可直接开到java源文件,缺点在于只能反编译出开发时的java文件,而开发时使用的lib包不能反编译出来。

三、AXMLPrinter2.jar + baksmali.jar + smali.jar 方法

这个方法就强大了,AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具,直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密)。
baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具
操作方式如下:

1、java -jar AXMLPrinter2.jar D:/play/AndroidManifest.xml > AndroidManifest.txt
2、java -jar AXMLPrinter2.jar D:/play/res/layout/main.xml > main.txt
3、java -jar baksmali-1.2.5.jar -o classout/ d:/play/classes.dex

Ⅳ 一个 编译好的c语言.exe程序,如何破解看到源代码

exe文件是二进制的了,而且在编译的过程中编译器也会进行优化,C语言好像没有好的反编译软件,其他语言的反编译软件反编译出来的也跟实际的代码差别很大,几乎不同,还有就是反汇编,不过这需要你对汇编语言比较了解。

Ⅵ android名词解释 破解和反编译一样吗

android:是谷歌公司旗下的一种专注于移动端的系统
(手机、平板、智能手表、智能电视之类的)

反编译是一种破解手段
反编译属于破解,而破解的办法不止反编译

望采纳

Ⅶ Android APP的破解技术有哪些如何防止反编译

由于Android系统的开放性,导致Android
APK很容易被他人破解或是反编译,下面给大家介绍常用的APP破解工具和技术要求。同时根据自己以往的防破解经验,跟大家分析下如何防止反编译。
Android
APK运行环境依赖的文件/文件夹
res、DEX、主配文件Lib
只是简单的加密甚至没有任何保护措施。APKtool(一种反编译工具)可轻易将其轻松破解,再配合其他各种工具基本可以做到:源码暴露(代码混淆也几乎起不到任何安全作用)、资源文件裸奔、主配文件可任意修改、核心SO库暴露、暴力破解恶意利用等。部分大公司会对其应用APK包进行防二次打包和防APKtool破解,但其代码都是写在JAVA层,另外APKtool的可升级导致其安全保护级别也是非常低的。

Ⅷ 防止自己的APP被反编译或破解,通常有哪些方法

混淆代码:
Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。 但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大。
防二次打包:
二次打包是指将APK拆包后重新打包,二次打包必将丢失原有的签名。大多数的Android开发者都是将签名信息作为认证标准,所以只要原有的签名信息改变,APK就无法正常运行。但是如果将这个认证信息功能屏蔽掉,防二次打包就失效了!
我们先通过APK安全保护平台,对这款Android APK进行安全保护。
步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!

注意:
在APK源代码安全保护平台,个人信息要填写完整,否则无法正常使用。APK加密完成后,系统会发出邮件通知加密完成。最后下载APK包再次完成签名,就可以正常使用了!

Ⅸ 求助,PIC的C编译器 破解方法

用PICC。PICC这个软件已经被Microchip 收购了,你用的MPLAB8.5的安装包里带有PICC for PIC12/16 编译器,可以编译PIC12和PIC16系列单片机的C语言文件。安装MPLAB8.5的时候注意把hi-PICC for PIC12/16选项勾上就行。装完后在MPLAB软件中建立项目的时候选择HI-PICC即可

Ⅹ java语言编译出来的class文件很容易被反编译和破解,因此java语言其实并不是那么安全的。对

所以有了“代码混淆”。在编译的时候将变量名、方法名、类名替换成无意义的字符串,添加无用代码等,反编译后也没人看得懂代码。

阅读全文

与编译和破解相关的资料

热点内容
ubuntu压缩zip 浏览:2
vigenere算法的方法是什么 浏览:666
pdf保护破解 浏览:341
仿微信聊天系统源码广州公司 浏览:106
怎么查看我的世界服务器日志 浏览:430
怎么从程序员走到成功 浏览:824
把软件放入文件夹中如何移出 浏览:209
红包源码企业即时聊天软件 浏览:581
xp安装python 浏览:10
西门子参数编程读取半径值 浏览:403
洗首饰解压小视频 浏览:966
01背包问题的算法解决 浏览:373
sd卡放哪个文件夹 浏览:301
解释器模式java 浏览:104
android垂直自动滚动条 浏览:153
计算器java小程序 浏览:27
java的简称 浏览:68
云服务器公网ip地址 浏览:581
php对数据库操作 浏览:237
java爬图片 浏览:866