• android逆向分析之反编译


    提到逆向工程,首先就要提到反编译,对于反编译,现在工具还是比较多的,市面上广泛应用的三神器(apktool、dex2jar、jdgui),本篇主要围绕着三神器展开,后面还会阐述smali和使用smali2java。我是通过这三神器入门的,最初的时候,通过反编译去看一些公司的架构和一些功能的实现,还是挺嗨的,但是伴随着软件安全意识的加强,还有各个公司对自己产品的保护,现在反编译的难度越来越大的,可读性也随之低了好多,从之前的混淆到现在的加壳,还有一些大公司更是通过C/C++实现代码更加安全。。。

    不多说,就是干,今天就围绕某个保险公司的产品展开(这是之前别人让我做的一个私活,修改内部的一个功能)。apk本身就是一个压缩包,可以直接解压,解压完成后,一级目录会有一个classes.dex文件,此时把文件拷贝到dex2jar文件夹下,找到dex2jar.bat文件(我是在Windows环境下),通过cmd打开操作窗口,把dex2jar.bat拖到操作窗口,一个空格后在拖入classes.dex文件,一个回车就ok,如图所示:

    这里写图片描述

    完成此操作后,便会生成一个jar文件。

    这里写图片描述

    通过jdgui打开,如下

    这里写图片描述

    虽然此保险公司在全国都很出名,大个子还代言过,这代码安全方面确实有点汗颜,没加壳也没做混淆,赤裸裸的暴露出来了。。。

    此时,我们拿到的仅仅是源代码,对于资源文件,打开后都是乱码,说到这里,apktool闪亮登场了,通过操作窗口键入到apktool文件夹下,apktool d jst.apk这是反编译命令。通常情况下,我是把要反编译的文件放在apktool文件夹下,这样不用担心路径的问题,过程和结果如下:

    这里写图片描述 
    PS:这是我的路径,需要填写自己apktool的路径。

    这里写图片描述

    这里写图片描述

    现在的xml文件,可以通过记事本或者文本编辑工具直接打开,如果需要修改一些代码和功能,smali文件夹下面找到对应的文件进行修改,修改完后的文件,通过apk b jst直接打包,是对文件夹打包,注意的是jst没有后缀,此处未做签名校验,签名后便可以安装运行。

    这里写图片描述

    这里写图片描述

  • 相关阅读:
    golang 使用 os/exec
    golang调用 exec命令 出现too many open files
    nginx: [error] invalid PID number “” in “/usr/local/var/run/nginx/nginx.pid”
    Docker 实时查看docker容器日志
    curl 查看HTTP 响应头信息
    go -- go 程序 启动docker容器
    go -- 测试
    Linux /var/log下各种日志文件
    LDAP -- ldap 的cn, ou, dc的含义
    一条命令 杀死某个端口 所有程序
  • 原文地址:https://www.cnblogs.com/TOLLA/p/9646755.html
Copyright © 2020-2023  润新知