FraMeQ 发表于 2017-1-22 13:48

[Android]动态加载JNI函数

本帖最后由 FraMeQ 于 2017-1-22 13:58 编辑

新开了移动板块,却没有看到一篇帖子,很是尴尬,在这里小弟抛砖引玉,活跃下气氛。大牛别喷


安卓有两种加载JNI函数的方式,首先第一种是静态方法,看下是如何加载的

在这里我们创建了一个简单的CrackMe,首先附上MainActivity方法



package get1t.crackme;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import junit.framework.Test;
public class MainActivity extends AppCompatActivity {
    static {
      System.loadLibrary("mainactivity");
    }
    private TextView textView;
    private EditText Edit_UserName;
    private EditText Edit_Passwd;
    private Button button;
    private String UserName;
    private String Passwd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      textView = (TextView)findViewById(R.id.id);
      Edit_UserName = (EditText)findViewById(R.id.editText);
      Edit_Passwd = (EditText)findViewById(R.id.editText2);
      button = (Button)findViewById(R.id.button);
      button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                UserName = Edit_UserName.getText().toString();
                Passwd = Edit_Passwd.getText().toString();
                if(Check(UserName,Passwd).equals("Success")){
                  textView.setText("Success");
                }else {
                  textView.setText(Check(UserName,Passwd));
                }
            }
      });
    }
    public static native String Check(String UserName, String Passwd);
}


调用了native层的Check方法 判断是否成功

------------------------------------------------------------------------------------------------------------------
**** Hidden Message *****
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

好了,最后说下为什么介绍这种方法:
碰到一个CrackMe 里面使用的这种方法,以前都是直接寻找Java_com_XXX很容易直接通过符号定位到关键点,
纠结了很久才知道这个方法,自己也用代码实现了一下,好了,就这样

小小强 发表于 2017-1-31 16:27

来学习的,看看APK

sndncel 发表于 2017-2-2 06:23

好久没来了。。。。。进来学习一下呀。。。。。

geegtb 发表于 2017-2-4 11:24

看看是怎么分析逆向的

liyuqiha 发表于 2017-2-8 22:05

支持楼主楼主威武

Anewbie 发表于 2017-2-9 15:57

虽然看不懂,回复学习

mylin2008 发表于 2017-2-10 11:26

对楼主只能说,你太伟大了!!

poca 发表于 2017-2-12 14:27

看来楼主的深入不

a1186494930 发表于 2017-2-12 19:03

感谢楼主分享了。

mosagi 发表于 2017-2-13 19:53

这才是纯正的技术文章,谢谢分享
页: [1] 2 3 4 5
查看完整版本: [Android]动态加载JNI函数