「java破译」java暴力破解代码
本篇文章给大家谈谈java破译,以及java暴力破解代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java手机的密码怎么破解?
无法破解。
解释:java手机密码是经过加密程序加密的,加密过程通常具有不可逆性,也就是即使知道加密后的字符串也无法获取到相应的原有密码。
备注:建议还是想办法通过找回密码,或者是想想原有密码的形式进行密码匹配。
如何有效的防止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程序的重要技术。
JAVA应用怎么破解?
一.破解工具预备
要破解JAVA软件,必须要反编译用JAVA编写的类文件。由于网上大虾们的支持,许多反编译软件被研制出来
其中,我经常使用的是:
1. cavaj Java Decompile 1.11
2.Java源代码反编译专家(该软件支持目录编译)
3.JAD
这三个软件各有优缺点:前二个软件是GUI界面,使用起来很方便。尤其是"Java源代码反编译专家",支持
目录编译,用起来很得心应手;第三个软件JAD功能最强,由于是字符界面,但是相对初学者比较难一点。
二.破解步骤
1.首先分析批处理文件,找到第一个调用的CLASS。
在分析iavaZIP20软件的iavaZIP2.bat,我把最重要的一句COPY到下行:
com.sfs.app.iavazip20.iavaZIP20 %1 %2 %3 %4 %5 %6 %7 %8 %9
可以知道,在com\sfs\app\iavazip20的目录下的iavaZIP20.CLASS就是被调用的第一个CLASS.
2.反编译第一个CLASS,分析MAIN方法,寻找版本控制的代码段
我用“cavaj Java Decompile 1.11”编译iavaZIP20.class文件,很快就可以得到该软件的JAVA代码,
main方法的全部代码如下:
public static void main(String args[])
{
iavaZIP20 iavazip20 = new iavaZIP20(args);
if(iavazip20.isEXPired())
{
System.out.println("iavaZIP20 trial time has expired. Please purchase and enter licence key.");
for(_cls13 _lcls13 = new _cls13(iavazip20, true); _lcls13.expirationFrame.isShowing();)
{
try
{
Thread.sleep(1000L);
}
catch(InterruptedException _ex) { }
}
if(_cls66.isSerialRegcode(((_cls1) (iavazip20)).res.getProperty("user.id")))
{
iavazip20._fld6.remove(iavazip20._fld4);
iavazip20._fld6.add("Right", iavazip20._fld4 = iavazip20._fld0 = new _cls13(iavazip20));
iavazip20._fld6.validate();
} else
{
iavazip20.dispose();
System.exit(0);
}
}
iavazip20.show();
}
很明显,iavazip20.isExpired()就是版本控制的代码。
3.分析版本控制的语句,找到破解的方法
由于isExpired()的方法的代码如下:
public boolean isExpired()
{
return !_cls66.isSerialRegcode(super.res.getProperty("user.id", "0")) Long.parseLong(super.res.getProperty("magic")) magicTime System.currentTimeMillis();
}
看了com\sfs\app\iavazip20的所有文件,由于该文件夹中的文件都是从1-66之间的整数问文件名,“class”为扩展名的类文件,分析“!_cls66.isSerialRegcode”的方法是破解的要害类应该就是66.class文件
怎么破解JAVA游戏
用HALO 可以破解大多数用短信收费的JAVA游戏```
操作很简单```用HALO 打开想要XX 的JAVA游戏
工具-配置-对JAVA进行破解 选上
再依次按下 F5 F6 F7就可以了
破解后的游戏保存在HALO 目录下的GAME 目录里
如何破译JAVA软件获取源代码
jad
但是目前反编译都不是100%能还原的,如果源码有嵌套循环,或者代码复杂度高,反编译就有问题了,甚至还会出现goto之类的代码
还有正如 kellobnb说,java代码也可以进行加密,混淆保护的,对于反编译更带来困难
更重要的是注释在编译阶段就被忽略的.因此反编译无注释...这对理解代码更带来困难
关于java破译和java暴力破解代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。