专栏首页小白帽学习之路利用frida与ida实战脱壳360加固

利用frida与ida实战脱壳360加固

实战脱壳360加固

正文共: 1741字 7图

预计阅读时间: 5分钟

1、最近一直在搞工控设备方面的漏洞挖掘,其中遇到一个应用程序进行渗透时遇到请求参数被加密或者签名的情况, 在请求数据被修改后提示异常, 导致无法有效地进行漏洞挖掘,因此把最近关于脱壳的方法做个记录,逆向反编译应用进行查看

2、通过查壳和上面分析是360加固,经过加固后的apk,通过常规方法反编译无法获取到源码

3、配置环境并启动frida服务

4、端口转发

5、相关命令

--version show program's version number and exit -h, --help show this help message and exit -D ID, --device=ID connect to device with the given ID -U, --usb connect to USB device -R, --remote connect to remote frida-server -H HOST, --host=HOST connect to remote frida-server on HOST -f FILE, --file=FILE spawn FILE -n NAME, --attach-name=NAME attach to NAME -p PID, --attach-pid=PID attach to PID --debug enable the Node.js compatible script debugger --disable-jit disable JIT -I MODULE, --include-module=MODULE include MODULE -X MODULE, --exclude-module=MODULE exclude MODULE -i FUNCTION, --include=FUNCTION include FUNCTION -x FUNCTION, --exclude=FUNCTION exclude FUNCTION -a MODULE!OFFSET, --add=MODULE!OFFSET add MODULE!OFFSET -T, --include-imports include program's imports -t MODULE, --include-module-imports=MODULE include MODULE imports -m OBJC_METHOD, --include-objc-method=OBJC_METHOD include OBJC_METHOD

6、脚本编写并把libart.so 拿出来.然后IDA逆向OpenMemory的对应签名函数名.

Interceptor.attach(Module.findExportByName("libart.so", "_ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9_"), {
    onEnter: function (args) {
        //dex起始位置
        var begin = args[1]
        //打印magic
        console.log("magic : " + Memory.readUtf8String(begin))
        //dex fileSize 地址
        var address = parseInt(begin,16) + 0x20
        //dex 大小
        var dex_size = Memory.readInt(ptr(address))
        console.log("dex_size :" + dex_size)
        var packageName = "com.********" 
        var file = new File("/data/data/"+packageName+"/" + dex_size + ".dex", "wb")
        file.write(Memory.readByteArray(begin, dex_size))
        file.flush()
        file.close()
    },
    onLeave: function (retval) {
        if (retval.toInt32() > 0) {
            /* do something */
        }
    }
});

7、上面利用脚本配置好后进行脱壳如下

8、可以看到下面是我们脱壳的dex文件

本文分享自微信公众号 - 程序员阿甘(gh_a2e36d69d566),作者:IRTeam

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 它来了!它来了!MSF更新了CVE-2019-0708利用脚本,注意防护呀!

    十个小时前,MSF更新了CVE-2019-0708漏洞利用模块,在Metasploit下使用,使用便捷。但根据官方显示,该模块仅针对64位的Win7系统和Win...

    7089bAt@PowerLi
  • DVWA靶机之文件上传漏洞通关笔记

    文件上传漏洞通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常...

    7089bAt@PowerLi
  • 利用C#编写的绕过360安全卫士添加系统用户

    今天在群里看到一位大佬发的绕过360安全卫士添加系统用户权限的脚本,于是乎,我便下载下来分析可知是通过调用系统 API 函数来规避杀软:

    7089bAt@PowerLi
  • 深度解析云计算的12个顶级安全威胁

    导读: 越来越多企业数据和应用程序正在转向于云计算,这造成了云上面临更多的安全挑战。以下是使用云服务时,所要面对的12个顶级安全威胁。 云计算不断改变企业在使用...

    企鹅号小编
  • PyQt5 技术篇-plainTextEdit控件获得文本内容方法、设置文本内容方法。

    plainTextEdit获得、设置文本内容的方法和一般的控件不同。 获得文本内容:

    小蓝枣
  • python 属性property

    class Person: def init(self, first_name): self.first_name = first_name

    用户5760343
  • Python面向对象进阶及类成员

    先执行了Cat的构造方法,然后又执行了Annimal的构造方法。 第二种执行父类的方法如下:

    py3study
  • 『互联网架构』软件架构-服务限流降级熔断机制详解(95)

    IT故事会
  • 兰州拉面和水电大坝都在玩的数据大屏,到底是什么“黑科技”?

    当“数据大屏”成为一种可以标准化输出的可视化解决方案,非专业的小白也能轻易上手?7月15日数据侠实验室第15期活动中,阿里云开发专家、DataV核心开发者郑新...

    DT数据侠
  • 只会炒菜的机器人弱爆了,新型机器人大厨无所不能

    厨房里会自动炒菜的锅也叫机器人?那真是弱爆了。最近,英国机器人公司Moley Robotics推出了其全新的机器人厨师原型,该机器人由智能手机控制,能够根据已经...

    机器人网

扫码关注云+社区

领取腾讯云代金券