飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 21377|回复: 10

[iOS] 逆向XX助手获取Lua脚本明文 -- By 飘云

[复制链接]
  • TA的每日心情
    开心
    2016-6-16 14:07
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2015-4-29 14:10:35 | 显示全部楼层 |阅读模式
    今天来看看xx助手的lua脚本解密
    1.      找寻线索
    /Library/MobileSubstrate/DynamicLibraries下面看到 XXScreenShot.dylibXXScreenShot.plist

    Plist内容如下

    <?xml version="1.0"encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
             <key>Filter</key>
             <dict>
                       <key>Bundles</key>
                       <array>
                                <string>com.apple.backboardd</string>
                       </array>
             </dict>
    </dict>
    </plist>

    恩,明白了是hookbackboardd进程

    2.      静态分析
    IDA 载入 XXScreenShot.dylib

    0.png

    分析了一下,x23寄存器是输出缓冲区

    3.      动态调试
    手机端运行:
    1.png
    Mac端运行:
    2.png
    4.下断
              3.png
    此时在目标程序上点击播放,让脚本载入
    4.png

    5.继续分析
    5.png

    由于前面用IDA分析过x23寄存器保存了输出数据,那么我们直接在0x103d12cdc下断点,此时x23已经得到了数据,下好断点后,继续运行,如下图,顺利中断
    6.png

    6.输出数据
    7.png

    此时lua脚本已经完整解密了!!!

    7.编写tweak
    我们可以写个tweak来抓取脚本

    1. /*
    2. 获取xx助手lua脚本
    3. By 飘云/P.Y.G
    4. 2015-04-29
    5.   https://www.chinapyg.com
    6. */

    7. #import <substrate.h>
    8. #import <pthread.h>


    9. // 原始函数
    10. signed int (*orig_XxteaDecrypt)(const char *inBuf, size_t bufLen, const char *key, size_t a4, char *outBuf, int a6);

    11. signed int  myXxteaDecrypt(const char *inBuf, size_t bufLen, const char *key, size_t a4, char *outBuf, int a6)
    12. {
    13.     signed int  ret = orig_XxteaDecrypt(inBuf, bufLen, key, a4, outBuf, a6);
    14.     NSString *str = [NSString stringWithCString:outBuf encoding:NSUTF8StringEncoding];
    15.    
    16.     //NSLog(@"[++++]%s", outBuf);
    17.     NSLog(@"[++++]%@", str);
    18.     return ret;
    19. }

    20. void *threadFun(void*)
    21. {
    22.     while (true)
    23.     {
    24.         void *lpFun = ((void*)MSFindSymbol(NULL, "__Z12XxteaDecryptPKciS0_iPci"));
    25.         if (lpFun)
    26.         {
    27.             NSLog(@"[++++]lpFun = %p", lpFun);
    28.             MSHookFunction(lpFun, (void*)myXxteaDecrypt, (void**)&orig_XxteaDecrypt);
    29.             NSLog(@"[++++]orig_XxteaDecrypt = %p", orig_XxteaDecrypt);
    30.             break;
    31.         }
    32.     }
    33.     return NULL;
    34. }

    35. static __attribute__((constructor)) void piaoyun()
    36. {
    37.     // 用线程来查找,以免xx的dylib后加载而找不到函数
    38.     pthread_t th;
    39.     int err = pthread_create(&th, NULL, threadFun, NULL);
    40.     if (err != 0)
    41.         printf("[++++]pthread_create error: %s\n", strerror(err));
    42.    
    43.     NSLog(@"[++++]inject success!!!!");
    44. }
    复制代码


    8Tweak演示
    8.png


    题后话:当然你也可以自己写个程序静态解密lua脚本,我不太喜欢折腾,就直接tweak了。。

    PDF文档下载:
    逆向XX助手获取Lua脚本明文.zip (1.55 MB, 下载次数: 58)


    评分

    参与人数 3威望 +36 飘云币 +36 收起 理由
    crackvip + 8 + 8 穷人,玩不了IOS
    0xcb + 8 + 8 Method Swizzling, 给力
    Dxer + 20 + 20 PYG有你更精彩!

    查看全部评分

    本帖被以下淘专辑推荐:

    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-3-10 19:49
  • 签到天数: 473 天

    [LV.9]以坛为家II

    发表于 2015-4-29 14:55:02 | 显示全部楼层
    xy苹果助手?羡慕飘哥IOS等各方面的实力,mark一份学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-9-19 08:48
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2015-4-29 16:09:22 | 显示全部楼层
    吊炸天,嘿嘿
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    18 小时前
  • 签到天数: 2087 天

    [LV.Master]伴坛终老

    发表于 2015-4-29 19:33:11 | 显示全部楼层
    经验之谈,学无止境呀!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2021-9-29 15:05
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2015-4-29 23:21:16 | 显示全部楼层
    本帖最后由 wx_f1Jji177 于 2015-4-29 23:24 编辑

    运行时的Method Swizzling,很方便的就拿到方法参数,赞,玩coc的时候用过叉叉助手,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2015-5-2 22:22:10 | 显示全部楼层
    太牛逼了。可以拿电脑上的lua脚本吗?
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2016-12-1 20:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-6-9 08:48:37 | 显示全部楼层
    这个tweak咋写呀,我写的咋打印不出来内容呢!
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2016-12-1 20:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-6-9 08:49:08 | 显示全部楼层
    谁有现成的编译完的分享下?
    PYG19周年生日快乐!
  • TA的每日心情

    2022-10-7 12:25
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2015-7-6 09:13:15 | 显示全部楼层
    顶顶更健康{:soso_e102:}
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2017-4-3 22:09
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2015-11-13 16:56:27 | 显示全部楼层
    食我大雕{:soso_e104:}
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表