您的位置:首页 > 移动开发 > Android开发

Android逆向分析--so文件

2016-03-07 17:04 260 查看

1、创建名称为hello的Android工程,借助Eclipse ADT插件快速添加Native Support的方法

android工程右键--》Android Tools--》Add Native Support即可





2、在MainActivity中编写如下代码

public class MainActivity extends ActionBarActivity {

//加载名称为hello的类库   该类库对应的是obj目录下文件名称为libhello.so
//该文件是由lib+类库名称+.so构成
static{
System.loadLibrary("hello");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Toast.makeText(this, "add "+heloWorldForJni(100), 0).show();
}

//编写一个native方法
public native int heloWorldForJni(int count);

}


3、借助javah指令生成jni中对应的方法名



4、在hello.cpp文件中添加如下代码

#include<stdio.h>
#include<string.h>
#include <jni.h>

//兼容c
extern "C" {

JNIEXPORT jint JNICALL Java_com_example_hello_MainActivity_heloWorldForJni
(JNIEnv *, jobject, jint);

}

jint
JNICALL Java_com_example_hello_MainActivity_heloWorldForJni
(JNIEnv * env, jobject obj , jint count)
{
return count+99;
}


5、将生成好的so文件拖入到IDA中

将生成好的so文件拖入到IDA中,在Function name模块中按 Ctrl + F ,因为jni中的方法名都是java开头, 输入java 便可找到了我们的jni方法



6、双击该方法名 按F5,便可看到我们的对应的c代码

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: