1、首先在linux下判断氏蚂是否安装gcc编译器,直接执行:gcc -v,判断是否安装gcc。
2、然后需要在代码框内写歼档埋一个简单的C源程序。
3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件。
4、写完源程序之后,我们对其进行编译,如果使用通常的编译语句,【gcc math.c -o math】进行编译,会出现错误;大概的意思就是不认识sqrt这个东西。
5、所以需要使用正确的命令:【gcc math.c -lm -o math】;这样才蠢稿能编译正确。
在keilc中,单片机的C语行岁言程序可以再DEBUG模式中得到对应的汇编程序。步骤如下:
1、建立工程档核睁氏运,导入C文件代码,编译生成hex文件。
2、按CTRL+F5或者点击菜单Debug--Start/Stop Debug Session
3、点击View--Disassembly Window调出汇编窗口,如上图。
通过以上步骤就可以看到与C对应的汇编程序了。
2、反编译过程1)反编译出资源文件
使用apktool工具,进入apktool所在的目录下,使用如下的命令:
./apktool d ./xxx.apk(apk所在的路径)
d表示decode,在当前目录下就会生成一个名为xxx的目录,里面就是反编译出来的各种资源文件,其中res表示资源文件,smali表示源代码,不过是字节码,不能直接查看。
以本人的实验为例子,如下图所示:
此时会在当前目录下生成察尘则一个目录app-debug。
2)源代码的反编译
a)因为apk文件其实是使用zip进行打包压缩生成的文件,所以先把xxx.apk文件改兄源名为xxx.zip文件,并对其进行解压。
b)进入解压后的目录,其中有一个classes.dex文件,这个文件就是java文件编译再通过dx工具打包而成的,源代码就包含在这个文件中。
c)把前一步生成的文件classes.dex复制到dex2jar工具的根目录中,并使用如下命令对其进行反编译:
./dex2jar.sh d classes.dex
就会在当前目录下生成一个classes_dex2jar.jar文件
d)点击打开jdgui工具,这是一个图形化败棚的工具,然后打开上上述的classes_dex2jar.jar文件就可以看到apk对应的源代码。
对于本人的实验如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)