方案一
1,首先要添加一个参数为Exception类型的函数,例如这样。
public static void Fake(Exception e)
{
e.toString();
}
一定要有e.toString();,因为要防止你的混淆器把无用的代码过滤。
2,然后在每个类中调用这个函数,放在try...catch(Exception e)..中的catch里面,例如:
try
{
...
}
catch (Exception e)
{
Fake(e);
}
请注意 ,一定要放在catch才有用,其他地方无用。
方案二
如果以上方法还不够专业,我们再来一个。
1,同样的,我们定义一个类,这个类叫做AntiCrack.。名字好像有点大。。。代码如下:
public class AntiCrack
{
private AntiCrack()
{
}
public static Throwable Fake(Throwable throwable, Throwable throwable1)
{
try
{
throwable.getClass().getMethod("initCause", new Class[] {
java.lang.Throwable.class
}).invoke(throwable, new Object[] {
throwable1
});
}
catch(Exception exception) { }
return throwable;
}
}
2,同样的,我们在catch里面调用该函数。例如如下。
try
{
//your code here
}
catch(IOException ioexception)
{
IllegalArgumentException illegalargumentexception = new IllegalArgumentException(ioexception.toString());
AntiCrack.fake(illegalargumentexception, ioexception);
throw illegalargumentexception;
}
或者也可以这样
public class AntiException extends Exception
{
public AntiException()
{
}
public AntiException(String s)
{
super(s);
}
public AntiException(String s, Throwable throwable)
{
super(s);
AntiCrack.fake(this, throwable);
}
}
然后在你的程序里面
try
{
}
catch(IoException e)
{
throw new AntiException(ioexception.toString(), ioexception);
}
当采用以上方式后,任何类只要调用了该函数,生成的class反编译后出错,得不到结果。
Decafe、FrontEnd和YingJAD,反编译时都有exception,然后无法进行下去。大家可以测试。
推荐用第二种方案。
分享到:
相关推荐
在"color-compile-master"这个压缩包中,可能包含以下内容: 1. `color-compile`脚本:这是一个可执行文件或shell脚本,用于拦截`gcc/g++/make`的输出并添加颜色。 2. `README`文件:提供关于如何安装和使用`color-...
const PostCompileWebpackPlugin = require('post-compile-webpack-plugin'); module.exports = { // 其他Webpack配置... plugins: [ // 在这里添加插件 new PostCompileWebpackPlugin({ // 配置你的自定义...
《Kotlin-Compile-Testing:测试Kotlin与Java编译环节的利器》 在软件开发过程中,确保编译器插件、注解处理器以及代码生成的正确性是至关重要的。Kotlin-Compile-Testing库正是为此目的而生,它提供了一个强大的...
【js-conditional-compile-loader 1.0.15】是一个专为JavaScript代码条件编译设计的加载器,用于处理项目中的环境特定代码。在软件开发中,有时我们需要根据不同的运行环境(例如开发、测试和生产)来编译不同的代码...
标题中的"play-java-compile-di-example.zip_java_play"暗示了这是一个关于使用Java语言在Play框架中实现编译时依赖注入(Dependency Injection, DI)的示例项目。Play框架是一个流行的开源Web应用框架,它基于Scala...
v8编译缓存 v8-compile-cache附加了一个require钩子,以使用来加快实例化时间。 “代码缓存”是V8进行的解析和编译工作。 中引入了利用V8生成/使用此缓存的。用法添加依赖项: $ npm install --save v8-compile-...
color-compile 在 Linux 终端中使用 gcc/g /make 编译软件时,可以显示带颜色的 error/note/warning 效果对比如下: 使用 color-compile 后: 标签:color
conditional-compile-loader conditional-compile-loader 根据设定的参数对 vue、js、jsx 和 css(less, sass 等) 代码进行条件编译。 安装 先安装 conditional-compile-loader npm install -D conditional-compile-...
3D-blender-compile.zip,编译Blender 2.8的Docker环境,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。
在`frida-compile-master`这个压缩包中,可能包含了`frida-compile`项目的源代码。这通常包括以下几个部分: 1. `src`目录:存放`frida-compile`的源代码,你可以查看其内部实现和工作原理。 2. `package.json`:...
《color-compile源码解析:让gcc/g++/make编译过程更加醒目》 在编程过程中,使用gcc/g++/make进行源代码编译时,我们常常会遇到各种错误、警告和提示信息。这些信息对于查找和修复问题至关重要,但默认情况下,...
webpack-post-compile-plugin 一个webpack post编译插件。 它用于在node_modules中包括后编译模块。 安装 npm i webpack-post-compile-plugin --save-dev 用法 const PostCompilePlugin = require ( 'webpack-post-...
1、直接将编译好的包openssl1.1.1i-compile.tar上传包至/opt 2、解压 tar -zxvf openssl1.1.1i-compile.tar.gz 3、将解压出来的openssl移动到/usr/local下 mv openssl /usr/local/ 4、备份原来的,设置软链(参考我...
elasticsearch-head这个插件是es提供的一个用于图形化界面查看的一个插件工具,可以安装上这个插件之后,通过这个插件来实现我们通过浏览器查看es当中的数据 直接使用已经编译好的安装包,进行修改配置即可
gulp-compile-handlebars, 从把手文件编译模板 gulp-compile-handlebars从 gulp模板,由 grunt-compile-handlebars激发。编译车把模板模板安装安装使用 npmnpm install --save-dev gulp-comp
v8-compile-cache-lib fork作为API公开,可在其他库和工具中以编程方式使用。 v8-compile-cache-lib附加了一个require钩子,以使用来加快实例化时间。 “代码缓存”是V8进行的解析和编译工作。 中引入了利用V8...
brainfuck-compile
哈工大2022春编译系统(HIT-Compile_System)资料(实验期末复习资料)_HIT-Compile-2022Spring_HIT-Compile-2022Spring.zip
maven-compile-plugin-1.4.0-incubating.jar
Python-2.7.13-xcompile.patch