Android(apk反编译基础(apktoos)图文教程)
大家好,小太来为大家解答以上问题。Android,apk反编译基础(apktoos)图文教程这个很多人还不知道,现在让我们一起来看看吧!
长期以来,我在广工图书馆主页上写了一个类似爬虫的demo(因为没有接口,只能取静态网页)来实现一些图书馆系统的一些功能。但是最近发现库系统篡改了html页面,在一个html页面中嵌入了上千行评论,并且有自己的App,应该是为了增加抓取的流量成本,防止别人抓取网页。但是,加评论就不讨人喜欢了。内网访问速度还可以,外网访问体验很差。
如下图:一堆评论,导致一个网页需要2MB。
首页的APP必须使用库的后台接口与服务器交互,所以我想试试反编译,看看APP用的是什么接口。(另外,更简单的是用tcpdump对Android手机进行抓包并分析其接口,再用Wireshark分析tcp包。但是如果想知道所有的接口,可能需要一个一个的调用,会比较麻烦。采用反编译,你可能会在一个类里找到这些接口)。
一、首先要准备的工具:(更多反编译工具可以去Snow论坛下载或者学习-链接)。APK工具是GOOGLE提供的APK编译工具,需要JAVA运行环境。你可以反编译APK,可以用来反编译成非常接近打包前的原始格式。将AndroidManifest.xml、资源文件resources.arsc、dex文件反编译成可以调试的smali文件。修改后可以编译回apk文件。APKTool还可以用来汉化Android软件,然后重新打包发布。官方:http://code.google.com/p/android-apktool/
解压APKTool,把要反编译的APK放到目录中。
反编译:通过CMD进入上述目录,执行命令:apktooldecodezhaobenShu.apkoutdir。
稍等片刻完成反编译,反编译后的文件会在outdir目录下。
-outdir目录结构
Res:资源文件,基本和adnroid项目目录中的res一样,各种UI图片XML布局文件valuesxml文件(另外还有一个public.xml,上面有每个资源的id号(R.java中的ID))smail:这是一个key文件夹,里面有Smail格式文件,是Dalvik虚拟机执行的操作码(Dalvikopcodes)。如果有,这些操作有它们自己的语法吗?Androidmanifest.XML:Android项目下的AndroidManifest.xmlapktool.yml:用于重新打包。
二、smail语法:(全部语法请link)
smail中的数据类型签名与java中的相同,如下所示。
b-byteC-charD-doubleF-floatI-intJ-longS-shortv-voidZ-boolean[XXX-arraylxxx/yyy-object
三、smail代码例子:
乍一看,smail文件可能感觉有点乱。但是,只要你懂几个语法,就可以很好的阅读smail文件。Smail把常用的语法(不是全部)比较成:赋值、取值、函数调用、if语句、返回值等。赋值取值:例子:iget-objectV6,p0,Lcom/zbsh/code/class/classsystem$9;-val$vBarCodes:Ljava/util/ArrayList;
四、分析:
Iget值操作,i=instance,用于实例字段(实例变量),object表示类。V6是局部寄存器,p0在这里代表这个(在非静态函数中代表这个,在静态函数中代表第一个参数)。LCOM/ZBSH/CODE/CLASS/ClassSystem是CLASSsystem类,包路径为LCOM/ZBSH/CODE/CLASS,-箭头操作符相当于C/C,后跟类中的变量或方法。vBarCodes是CLASSSYSTEM中的变量,Ljava/util/ArrayList是vBarCodes的类型(java中类的签名)。
五、作用:
ClassSystem中vBarCodes的值存储在寄存器v6中。vBarCodes的类型必须是对象,并且是实例变量和非静态变量。其中object可以替换为基本数据类型:iget-booleaniget-byteiget-chariget-short等等。
六、同样的
Sgt-[type]用于获取静态变量。(缺少一个p0,因为静态变量没有这个)
Aget-[type]用于获取数组类型。
[x]获取vx,vy,并将寄存器vy中的值赋给vx。
七、赋值:
同样都有以下几种:iput-[type]sput-[type]aput-[type]也支持寄存器和寄存器之间的赋值,寄存器和变量之间的赋值调用-直接调用私人的函数调用-超级调用父类函数调用-静态调用静态函数调用-虚拟用于调用保护或公众的函数(相当于C的虚函数,java的重载函数,只有保护和公众的能够重载)还有一种比较特殊的:调用-
本文到此结束,希望对大家有所帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
最近收到一位患者的留言,说自己这几天总感觉肛门有下坠胀感,特别难受,上网一查,好多信息都指向癌症,这可...浏览全文>>
-
腹痛、腹泻总反复!可能是小肠、大肠在抗议。基于症状特征区分小肠疾病与大肠疾病的具体差异分析:一、核心症状...浏览全文>>
-
近日,中国中医药信息学会肛肠分会·肿瘤分会·治未病分会·河北名医学会肛肠分会·盆底与便秘分会·河北省中...浏览全文>>
-
安徽蚌埠的长安启源E07作为一款备受关注的新能源车型,其价格和配置一直是消费者热议的话题。如果你正考虑入手...浏览全文>>
-
近年来,随着新能源汽车市场的快速发展,插电式混合动力车型逐渐成为消费者关注的焦点。生活家PHEV作为一款备...浏览全文>>
-
在2025款生活家PHEV车型正式上市之前,提前了解相关费用明细对于购车者来说至关重要。这款插电式混合动力车型...浏览全文>>
-
大众途昂作为一款中大型SUV,凭借其宽敞的空间和强劲的动力配置,在市场上一直拥有不错的口碑。对于计划购买20...浏览全文>>
-
阜阳地区的长安启源Q05 2025款车型凭借其时尚的外观设计和丰富的配置,吸引了众多消费者的关注。这款车型作为...浏览全文>>
-
阜阳揽巡作为一款备受关注的中型SUV,凭借其豪华的配置和超值的价格吸引了众多消费者的目光。这款车不仅在外观...浏览全文>>
-
淮南长安启源A07自上市以来便凭借其卓越的性能和亲民的价格赢得了众多消费者的青睐。作为2025款的新车型,它在...浏览全文>>