Python-apk安全检测--反编译资源文件(Smali+class+java)代码实现-01

5 篇文章 0 订阅

       前面我们已经将环境都安装好了,现在我们就开始搭建一个项目来做反编译啦!首先我们说一下我这边项目的一个目录结构:config(配置文件目录),res(反编译目录资源),util(工具目录),test(测试代码目录)

1.config目录:主要房租一些配置文件全局的获取部分需要的设置

2.res目录:apk文件目录(apk_dir);class文件目录(class_dir);java文件目录(java_dir);smali文件目录(smali_dir)

3.util目录:配置文件读取类(config),常规文件读写类(fileds),数据库操作类(sqlTool)    等

4.test:放置主要核心代码文件

如图:

至于一些工具了我们这里就不进行详细的说明了(我之前的文章中都有进行说明),主要重点将放在核心代码实现上。

一。我们要获取到常规反编译文件(Smali)

先定义几个目录文件方便我们放置不同类型的文件

def __init__(self, apkName):
        """相当于java的初始化过程"""
        self.apk_dir = Config("apk").get("apk_dir") + apkName + ".apk"
        self.class_dir = Config("apk").get("class_dir") + apkName
        self.java_dir = Config("apk").get("java_dir") + apkName
        self.smali_dir = Config("apk").get("smali_dir") + apkName

之后就是通过调用工具对apk进行反编译了

def decompileSmali(self):
        """反编译获取Smali 文件"""
        if not os.path.exists(self.smali_dir):
            os.makedirs(self.smali_dir)
        else:
            shutil.rmtree(self.smali_dir)
            os.makedirs(self.smali_dir)
        os.system("apktool d -f " + self.apk_dir + " -o " + self.smali_dir)
        return self.smali_dir

之后我们进行调试一下看看结果(目标apk:cartoonchild.apk)

if __name__ == '__main__':
    decompile = apkDecompile("app_3.0.4_updateA_release")
    decompile.decompileSmali()

稍等一会我们就可以看到控制台及文件目录中已包含相关文件

到这里Smali文件就反编译完成了,是不是特别简单。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值