V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
paparika
V2EX  ›  Android

UPX 给 so 加壳之后,崩溃栈信息还能有效分析吗?如何解决?

  •  
  •   paparika · 2018-02-07 10:58:58 +08:00 · 5857 次点击
    这是一个创建于 2270 天前的主题,其中的信息可能已经有所发展或是发生改变。
    UPX 给 so 加壳之后,崩溃栈信息应该看不出对应函数名调用吧,对应的源文件位置能吗?怎么恢复?
    11 条回复    2018-02-08 11:41:44 +08:00
    nyanyh
        1
    nyanyh  
       2018-02-07 12:15:06 +08:00
    upx -d ?
    paparika
        2
    paparika  
    OP
       2018-02-07 12:27:14 +08:00
    @nyanyh 我的意思是崩溃发生时,符号信息什么的都没有了,看不出具体的函数名
    zk8802
        3
    zk8802  
       2018-02-07 13:01:08 +08:00 via iPhone
    把 core dump 扔到 IDA 里面分析。没有函数名,可以和原来有函数名的可执行文件进行比较,手工或写个脚本自动把函数名映射回来。
    paparika
        4
    paparika  
    OP
       2018-02-07 13:47:35 +08:00
    @zk8802 谢谢回答。其实还不太理解,upx 和一般编译器带的 stripe 参数有啥区别呢,upx -d 就可以拿到符号表信息了,那岂不是还不如直接用 stripe 更安全?
    BXLR
        5
    BXLR  
       2018-02-07 13:59:18 +08:00   ❤️ 1
    1.stripe 是擦除 so 节点的符号,so 装载时有些符号是用不到的,能用到的已经在动态段,这个段表的符号是有用的。
    2.upx -d 是你在没改变 upx 源码的情况下,可以用来脱壳,解压缩的。
    3.说的不是很清楚,推荐程序员的自我修养。
    paparika
        6
    paparika  
    OP
       2018-02-07 14:53:05 +08:00
    @BXLR 谢谢,回去看看这本书。容我再啰嗦下,stripe 应该是会增加反向工程的难度吧? 因为脱壳的存在,那么加壳之前是不是 stripe 应该一下更安全?
    BXLR
        7
    BXLR  
       2018-02-07 15:18:59 +08:00
    @paparika 恩,去掉多余的符号之后,分析难度会大些。
    jyf007
        8
    jyf007  
       2018-02-07 16:41:37 +08:00
    曾经我在上小学时遇到了一位安全大牛,他说那些书都是各种帖代码,一点用都没有,当时我在看所谓黑客的杂志,想起一种可执行文件加壳方式,叫虚拟机壳,说得他一愣一愣的,当然他的主题意思是这些都没有意义,只有攻防对立统一.
    zk8802
        9
    zk8802  
       2018-02-07 21:35:25 +08:00 via iPhone
    大部分加密壳都会去掉多余的符号信息,你就不用单独 strip 了。UPX 是压缩壳,安全性本来就不是它的主要考虑。
    paparika
        10
    paparika  
    OP
       2018-02-08 10:26:21 +08:00
    @zk8802 了解了,有没有什么开源的加密壳可以用
    zk8802
        11
    zk8802  
       2018-02-08 11:41:44 +08:00 via iPhone   ❤️ 1
    Google “ open source elf packer ”。

    另外,有些壳的保护强度还不如 obfuscator-llvm。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   892 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:00 · PVG 06:00 · LAX 15:00 · JFK 18:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.