Atitti.java android反编译解决方案-----虚拟机方案
2016-03-26 22:13
399 查看
Atitti.java android反编译解决方案-----虚拟机方案
哈哈,终极解决方案是虚拟机。。。c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦。。只要不能拿到c++源码就可。。。
java可以使用虚拟机方式,使用汇编模式编写,真正的代码其实在 不外传的文档里面...如果对方反编译,只能得到类似于汇编的代码。。
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
AtiVM vm = new AtiVM();
vm.getstatic(CRuntime.INSTANCE);// 获取指定类或者接口的静态域,并将其值压入栈顶
vm.push(null); // 将null推送至栈顶
vm.invokeinterface(CLibraryInterface.class, "time", 2);// 调用接口方法
// ,从栈顶取出俩个数作为参数,把返回值放入栈顶
vm.push(631123200);
vm.sub();// sub 将栈顶两int型数值相减并将结果压入栈顶
vm.push(850348800l);//
vm.cmp(); // cmp 比较栈顶两long型数值大小,并将结果(1,0,-1)压入栈顶
if (vm.ifle()) // ifle 当栈顶int型数值小于等于0时跳转
{
vm.getstatic(System.out);
vm.push("ok");
vm.invokevirtual(PrintStream.class, "println"); //调用实例方法
vm.ret(); // return
} else {
// vm.new0(RuntimeException.class);
vm.push("ex1");
vm.invokespecial(RuntimeException.class); // 调用超类构造方法,实例初始化方法,私有方法
vm.athrow(); // 将栈顶的异常抛出
}
System.out.println("---finish");
}
也能使用classloader做个bejyez ....中间容易的点儿..
哈哈,终极解决方案是虚拟机。。。c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦。。只要不能拿到c++源码就可。。。
java可以使用虚拟机方式,使用汇编模式编写,真正的代码其实在 不外传的文档里面...如果对方反编译,只能得到类似于汇编的代码。。
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
AtiVM vm = new AtiVM();
vm.getstatic(CRuntime.INSTANCE);// 获取指定类或者接口的静态域,并将其值压入栈顶
vm.push(null); // 将null推送至栈顶
vm.invokeinterface(CLibraryInterface.class, "time", 2);// 调用接口方法
// ,从栈顶取出俩个数作为参数,把返回值放入栈顶
vm.push(631123200);
vm.sub();// sub 将栈顶两int型数值相减并将结果压入栈顶
vm.push(850348800l);//
vm.cmp(); // cmp 比较栈顶两long型数值大小,并将结果(1,0,-1)压入栈顶
if (vm.ifle()) // ifle 当栈顶int型数值小于等于0时跳转
{
vm.getstatic(System.out);
vm.push("ok");
vm.invokevirtual(PrintStream.class, "println"); //调用实例方法
vm.ret(); // return
} else {
// vm.new0(RuntimeException.class);
vm.push("ex1");
vm.invokespecial(RuntimeException.class); // 调用超类构造方法,实例初始化方法,私有方法
vm.athrow(); // 将栈顶的异常抛出
}
System.out.println("---finish");
}
也能使用classloader做个bejyez ....中间容易的点儿..
相关文章推荐
- Atitti.java android反编译解决方案-----虚拟机方案
- Atitti.java android反编译解决方案-----虚拟机方案
- Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单
- Atitit.反编译apk android源码以及防止反编译apk
- android常见布局整理
- Atitit.反编译apk android源码以及防止反编译apk
- Atitit.反编译apk android源码以及防止反编译apk
- iPhone 和Android应用,特殊的链接:打电话,短信,email
- Android 内核 - 04 Framework 的启动
- Android基础学习之怎么在Activity启动时获得View的宽高
- Android开源框架Universal-Image-Loader详解
- 浅谈Android MVP设计模式(简单结合RxJava+Retrofit)
- Android资源
- Android 开源框架Universal-Image-Loader---源代码解读
- Android项目通过NDK整合libjpg与libpng
- android 事件机制
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- Android——AS的Refactor下拉菜单Rename的作用
- 用的最多的Android Studio 快捷键
- JNI学习二之(C源码中Log输出及常见错误)