[android逆向]活用反射机制

首先看一个简单的实现

在需要调用的地方写入一下代码:

[code lang=”java”]
try
{
sJump = Class.forName("com.rect.jumpdemo.JumpHandle");
if(sJump != null)
{
Method method =
sJump.getMethod("CallBack", new Class[] { Integer.TYPE});
if(method != null)
method.invoke(null, new Object[] { Integer.valueOf(11)});
}
}
catch (Exception e) {
// TODO: handle exception
}
[/code]


编写需要反射的类和函数:

[code lang=”java”]
package com.rect.jumpdemo;
import android.util.Log;
//
// @author Rect
// @version 2014-3-10
//
public class JumpHandle {
public static void CallBack(int a)
{
//反射回调 执行你想要的操作
}
}
[/code]

这样在执行的时候就可以不需要improt类而达到执行函数的目的.

这种方式在逆向中如何应用?

  • 寻找需要程序执行你的代码的地方.
  • 反编译classdex文件
  • 把反射代码编译成Dalvik汇编代码
  • 在该地方插入反射代码(上面的第一段).
  • 把你需要执行的函数代码类编译成Dalvik汇编代码文件.
  • 把Dalvik汇编代码文件放入classdex文件中
  • 修复classdex文件
  • 回编译APK.

《[android逆向]活用反射机制》有2个想法

  1. 因为没有你得联系方式 我想问下关于apk安全得问题。 方便得话加我qq:81621965。请教些问题

发表评论

邮箱地址不会被公开。 必填项已用*标注