1. 请问安卓的SO文件是怎么回事,可以反编译出源码吗 是如何生成的用JAVA还是C代码生成的
如何JAVA代码调用?
jni吧?
安卓的SO文件是linux下的文件,用c或者c++写的。
2. 如何看到一个APP应用的源代码
一、安卓APP
用android-killer可以反编译apk,比较方便,不过只能看到smail文件,学习一点smail,你可以看明白他的源代码的意思,如果有壳的话,先改apk后缀后为zip,找到加壳的so文件,一般如名字中带xxxprotect.so 用网络,360,腾讯厂商加固的话,也都有对应特点,然后把这个so文件用IDA pro打开,找到它的关键加密算法。找到后,一版是不让进加密算法,直接return。就可去壳,去了壳之后,再进行重打包签名,测试下。
二、ios上的app一般走如下流程
1、 拿个越狱机-下好工具
2、 去越狱平台下个想分析的应用(或者去app store下,用解密工具解密一下)
3、 导入reveal分析页面,得到想要的知道的具体视图类或者大致范围
4、 分析class-mp中,找到想要的类和函数
5、 在IDA或者Hopper中找到具体函数,查看汇编逻辑
6、 修改相应的逻辑,达到篡改目的,重新打包
3. 请问我有一个.so文件,如何在Linux下编程使用呢
-lxx
xx是你的.so文件名
其实使用方法和你使用数学库函数是一样的,源代码中添加
#include <math.h>,编译的时候,加上-lm参数。
注:linux下的扰裤.so文件为共享库,相当于windows下的dll文件。
linux下编写调用so文件实例
.so是Linux(Unix)下的动态链接库. 和.dll类似.
比如:
文件有: a.c, b.c, c.c
gcc -c a.c
gcc -c b.c
gcc -c c.c
gcc -shared libXXX.so a.o b.o c.o
要使用的话也缓友简很简单. 比如编译d.c, 使用到libXXX.so中的函数, libXXX.so地址是MYPATH
gcc d.c -o d -LMYPATH -lXXX
注意不是-llibXXX
test.c文件和一个test.h,这两个文件要生成libsotest.so文件。然后我还有一个testso.c文件,在这个文件里面调用libsotest.so中的函数。
编写的过程中,首先是编告孝译so文件,我没有编写makefile文件,而是参考的2里面说的直接写的gcc命令。
因为so文件里面没有main函数,所以是不可执行的,所以编译的时候要加上-c,只生成目标文件。