4.2 apktool
apktool是一个为逆向工程师打造的用于反编译Android二进制APP的工具。它可以将资源解码为几乎原始的形式,并在修改之后重建它们。本书介绍的apktool版本为:2.4.0。
在网上下载apktool.bat、apktool.jar,放在同一个目录下,然后把需要反编译的apk也放在这个目录下,运行如下命令(demo4.apk为反编译的apk文件)。
C:\dex2jar-2.0\APKTool>apktool d demo4.apk
在当前目录下形成一个名为demo4的文件夹,点击进入,如49所示。
49 demo4文件夹中的内容
在这里比较关注的是smail文件夹,里面的结构类似于Android工程文件src的目录结构,进入找到相应目录下的对应smail文件,即可通过修改smail文件,在里面加入恶意代码,然后通过Smali2java转化为java文件,再编译成apk文件,这就是所谓的二次编译的黑客行为。
smail文件是一种基于Android的汇编语言,具有自己的语法规则,感兴趣的读者可以到网上查找。
星云测试
奇林软件
联合通测
顾翔凡言:
图是软件项目三角形。
图 软件项目三角形
下面做如下假设。
l 假设质量(Q)与范围(S)不变,时间(T)减少的情形下,必须雇佣高水平的人员或者先进的技术,即增大产品的成本(C)。同理,质量(Q)与范围不变,时间(T)增加的情形下,可以减少成本(C)。
l 假设质量(Q)与时间(T)不变,范围(S)增加的情形下,也必须增大成本(C)。同理,质量(Q)与时间(T)不变,范围(S)减少的情形下,可以减少成本(C)。
l 假设质量(Q)与成本(C)不变,时间(T)减少的情形下,范围(S)必须减少。同理,质量(Q)与成本(C)不变,时间(T)增加的情形下,可以加大范围(S)。
于是可以得到如下公式:
Q = TC/S
也就是说质量消耗单位模块的时间和金钱的乘积。从这里可以看出,完成一个功能,需要达到一定的质量,必须消耗有效的时间或者增加产品的成本投入,由此可以看出为了赶进度,盲目加班赶工是不可取的。