多读书多实践,勤思考善领悟

Java逆向基础之十八.JDB动态调试

Java逆向基础之十八.JDB动态调试

JDB在有源代码的时候可以实现调试远程机器上的java程序,但是在逆向中源码很难分析出来,不过还是能够调试得到一部分信息的 本文主要获取两个信息 1.动态调用混淆类中的方法,因为实践过程中我们去手动补全相关代码比较难 2.打印调用栈 ...

Java逆向基础之十七.导出内存中的类

Java逆向基础之十七.导出内存中的类

为什么需要这个,因为在之前的博文中提到,为了增加逆向的难度,部分软件会对部分关键方法和类进行隐藏,所以我们需要把这个类从内存中拿出来。 介绍使用javaagent和dumpclass,两种方法各有利弊。 1. 使用javaagent本...

Java逆向基础之十六.打印所有类名

Java逆向基础之十六.打印所有类名

在 Java SE 5 及其后续版本当中,开发者可以在一个普通 Java 程序(带有 main 函数的 Java 类)运行时,通过 –javaagent 参数指定一个特定的 jar 文件(包含 Instrumentation 代理)来...

Java逆向基础之十五.初识javaagent

Java逆向基础之十五.初识javaagent

首先说一下javaagent是什么 javaagent是一种能够在不影响正常编译的情况下,修改字节码。 在逆向中javaagent可以完成对类的拦截和增强。 看一个例子在Eclipse新建如下MyAgent结构的项目 MyAgent...

Java逆向基础之十四.动态生成类

Java逆向基础之十四.动态生成类

为什么有这个东西,一方面时AOP框架的需要,另一方面是增加软件逆向的难度 动态生成类的技术目前大体上分为两类,一类是通过操作字节码框架如cglib/Javassist去实现,另一类就是JNI方式,调用dll/so库,内存中动态还原。这...

字节码操纵技术探秘

字节码操纵技术探秘

大家可能已经非常熟悉下面的处理流程:将一个“.java”文件输入到Java编译器中(可能会使用javac,也可能像ANT、Maven或Gradle这样的构建工具),编译器对其进行分析,最终生成一个或多个“.class”文件。 图:什么...

Java逆向基础之十二.混淆器

Java逆向基础之十二.混淆器

混淆 DashO https://www.preemptive.com/products/dasho/downloads ZKM(Zelix KlassMaster) http://www.zelix.com/klassmast...

Java逆向基础之十.简单的补丁

Java逆向基础之十.简单的补丁

本文需要用到IDA 简单的补丁 1. 看一个例子12345678910public class nag { public static void nag_screen() { System.out.println...