安卓apk解压后得到的.so文件能直接放项目里面调用里面的方法吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓apk解压后得到的.so文件能直接放项目里面调用里面的方法吗?相关的知识,希望对你有一定的参考价值。
使用androidstudio创建一个Android项目打开Androidstudio创建一个项目,命名为tryndk
在项目中新创建一个类,在其中声明native方法在src/main目录下创建一个工具类,用来存放native方法
在Javautils类创建两个方法,声明为native
然后选中项目,点击build->make project,在项目中的build->intermediates->classes->debug->com->example->tryndk下就能看见javautils.class文件了
在Androidstudio中打开终端(View->ToolWindows->Terminal)在terminal中进入到main目录中,然后在键入javah -d jni -classpath ../../build/intermediates/classes/debug com.example.tryndk.javautils记得debug 后面有个空格。然后就能在src/main目录下看到jni文件夹,里面存放了一个头文件com_example_tryndk_javautils.h,里面生成了函数声明,
Java_com_example_tryndk_javautils_getStringFromNative为方法名,其中getStringFromNative为在javautils文件中创建的getStringFromNative方法。
然后在jni目录下创建一个c文件命名为MyJni.c,实现相应的方法
方法中就是返回了一个字符串。 参考技术A 我觉着不行,直接放里面应该调取不成功的 参考技术B .so文件应该是不能调试 的 因为这些都是linux的资源文件,ide并不能解析 参考技术C 这个没必要吧,你既然已经下载了APK,为什么还要把它放到这个文件夹里直接安装不就行了吗?
安卓逆向 -- 调用其他APK的SO文件
往期文章
前提:反编译apk只有调用代码,没有实现代码
一、新建一个空项目
二、调用其他apk的so文件
1、新建一个package,就是我要调用其他apk的包名
2、新建一个类文件,名字和调用so的类的名字一样
package com.bucuo.ndk20211010;
public class SignatureUtils {
public static native String signatureparams(String param);
}
3、新建一个jnilibs文件夹,将so文件拷贝过来
4、在java层调用
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String name= SignatureUtils.signatureparams("aiyoubucuo!!!");
Log.d("aiyou",name);
}
}
5、运行结果
禁止非法,后果自负
欢迎关注公众号:逆向有你
欢迎关注视频号:之乎者也吧
欢迎报名安卓逆向培训,报名微信(QQ):335158573
以上是关于安卓apk解压后得到的.so文件能直接放项目里面调用里面的方法吗?的主要内容,如果未能解决你的问题,请参考以下文章