Android逆向分析--so文件

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代码






猜你喜欢

转载自blog.csdn.net/oBuYiSeng/article/details/50820552