陈超众-逆向微信入门

2017-03-15  本文已影响224人  陈超众

准备工作

越狱手机

iPhone 软件/插件:

cycript
OpenSSH

Mac 软件:

iFoxBox
Theos

第一步:砸壳

  1. 执行命令$ssh root@你的手机IP
  2. 查找你要砸壳的应用位置 : root# ps -e : 例如:/var/mobile/Containers/Bundle/Application/86CE59CF-4B2E-403A-987F-A3C241820946/WeChat.app/WeChat
  3. 查找BundleIdentifier记下,后面写Theos会用到:root# cd /var/mobile/Containers/Bundle/Application/86CE59CF-4B2E-403A-987F-A3C241820946/WeChat.app/
    root# cat Info.plist
    搜索CFBundleIdentifier 找到bundleid com.tencent.xin
  4. root# cycript -p WeChat
    5.cycript中寻找沙盒路径:cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
    得到沙盒: /var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/
  5. 将砸壳工具dumpdecrypted.dylib拷贝到沙盒目录下:$ scp Users/chenchaozhong/Desktop/iOS\ 逆向相关/iOSReverse/dumpdecrypted/dumpdecrypted.dylib root@你的手机IP:/var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/
  6. 到沙河下开始砸壳:root# cd /var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/
    砸壳命令: root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/86CE59CF-4B2E-403A-987F-A3C241820946/WeChat.app/WeChat
  7. 将砸完壳的文件拷贝到电脑 $ scp root@你的手机IP:/var/mobile/Containers/Data/Application/55AB4B6E-581B-4ECB-9441-13048437A132/Documents/WeChat.decrypted /Users/chenchaozhong/Desktop/weixin/decrypted/
  8. 的到应用的头文件: $class-dump --arch armv7 -H /Users/chenchaozhong/Desktop/weixin/decrypted/WeChat.decrypted -o /Users/chenchaozhong/Desktop/weixin/header
  9. 得到.m 的汇编: 将WeChat.decrypted拖到Hopper;

动态调试

1.$/Users/chenchaozhong/Desktop/reverse/USBSSH/tcprelay.py -t 22:2222 1234:1234
2.$ssh root@localhost -p 2222
3.root#debugserver *:1234 -a "WeChat"
4.$process connect connect://localhost:1234

第二步:编写Theos

  1. $ /opt/theos/bin/nic.pl
    填写一些信息就创建完成了

    7B4D406C-38B4-4B89-983F-BD57C4D68489.png
  2. Makefile文件

79D03C53-5C09-4984-96D6-43BC0EA504DF.png
  1. Tweak.xm
    我们在appdelegate里放一个alert 告诉我成功进入微信;


    6D972C68-221C-4AA1-9D33-498F625559A4.png

简单介绍tweak语法

tweak语法

  1. %log
    要求:%hook 内部使用,
    作用:将函数名,参数写入syslog
  2. %orig
    要求:%hook 内部使用
    作用:执行原始代码,还可以更改原始参数
  3. %group
    要求:必须以%end结尾,必须配合%init使用
    作用:管理hook
  4. %init
    要求:%hook或%ctor内调用
    作用:初始化指定的group,如果不带参数,初始化_ungrouped
  5. %ctor
    隐式定义了
    %ctor
    {
    %init(_ungrouped);
    }
  6. %new
    要求:%hook内部使用,
    作用:给现有class添加新函数,动态
  7. %c
    要求:%hook内部使用
    作用:等同于objc_getClass或NSClassFromString
    /*****************end**************************************/

第三步:安装tweak

直接运行, 编译并安装: $ make package install

第四步: 启动微信

上一篇下一篇

猜你喜欢

热点阅读