1. 初识APK、Dalvik字节码以及Smali
后缀名为.apk
是安卓手机app的格式。它的实质是一个ZIP压缩包,将它的后缀名修改为.zip
便可以看到内部的文件结构。解压出来后一般有以下文件:
在做第五六课的打补丁作业时,遇到了在不脱壳的情况下修改程序。在复制到可执行文件时提示“无法定位数据”。这是因为程序加壳后,代码段显示全是空代码,我们修改代码时,系统执行将某代码1修改为某代码2,但系统在代码段找不到某代码1,所以提示“无法定位数据”。
但如果我们将程序脱壳了,就可在程序上随意修改,所以脱壳的重要性就体现出来了。脱壳毁一生,破解穷三代(bushi)。
拿到程序的第一时间运行一下,熟悉一下程序的流程。这个程序的流程是要我们输入UID和key。用PE工具查一下壳,发现有UPX壳,用ESP定律即可脱壳。验证程序是否脱壳成功,可载入OD看是否能查询到字符串,或载入IDA查看是否有函数或是否可以反编译出伪代码。脱壳后还要保证程序与未脱壳程序执行的流程要一致。