工具 checkra 越狱 安装ipa的工具impactor 越狱ipa,32位,iOS10.x 越狱ipa,64位,iOS11.2-11.3.1
MonkeyDev官网 frida-ios-dump Theos 生成 TWeak项目 导出.decrypted头文件 class-dump dylib项目开发
syslogd Utilities yololib
反汇编
Cydia 软件
砸壳 dumpdecrypted 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 security find-identity -v -p codesigning codesign --force --verify --verbose --sign "iPhone Distribution: HOLLYCRMBEIJING TECHNOLOGY CO.LTD. (T4V6H9AMFL)" dumpdecrypted.dylib scp dumpdecrypted.dylib root@192.168.31.121:/var/mobile/Containers/Data/Application/092E7298-56A7-4E68-BF45-CCBC93806DD7/Documents DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 程序WeChat安装路径 otool -l WeChat.ipa|grep cry
MonkeyDev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sudo git clone --recursive https://github.com/theos/theos.git /opt/theos brew install ldid brew install dpkg brew install usbmuxd xcode-select -p sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install) " sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-update) "
Logos Tweak 项目 1 2 3 // 项目工程目录 Package/LibraryMobileSubstrate/DynamicLibraries/.plist 文件修改 Bundles 添加微信的 bundleid 根据手机信息修改 Build Settings 配置 User-Defined 栏目里面的IP,密码等
cycript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cycript -p WeChat NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] [NSBundle mainBundle].bundleIdentifier UIApp.keyWindow.recursiveDescription().toString() [[[UIWindow keyWindow] rootViewController] _printHierarchy].toString() [[UIApp keyWindow] _autolayoutTrace].toString()
debugserver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Developer/usr/bin/debugserver codesign -s - --entitlements en.plist -f debugserver debugserver localhost:12345 –a WeChat iproxy 1234 12345 process connect connect://127.0.0.1:1234
文件 en.plist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?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 > com.apple.backboardd.debugapplications</key > <true /> <key > com.apple.backboardd.launchapplications</key > <true /> <key > com.apple.frontboard.debugapplications</key > <true /> <key > com.apple.frontboard.launchapplications</key > <true /> <key > com.apple.springboard.debugapplications</key > <true /> <key > com.apple.system-task-ports</key > <true /> <key > get-task-allow</key > <true /> <key > platform-application</key > <true /> <key > run-unsigned-code</key > <true /> <key > task_for_pid-allow</key > <true /> </dict > </plist >
dylib 微信步数修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CHDeclareClass(WCDeviceStepObject); CHOptimizedMethod(0 , self, unsigned int , WCDeviceStepObject, m7StepCount) { return 98888 ; } CHConstructor { @autoreleasepool { CHLoadLateClass(WCDeviceStepObject); CHHook(0 , WCDeviceStepObject,m7StepCount); } }
runtime 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @selector() -(bool)respondsToSelector:(SEL) - (IMP)methodForSelector:(SEL)aSelector + (IMP)instanceMethodForSelector:(SEL)aSelector //获取Ivar的名称 const char *ivar_getName(Ivar v); //获取Ivar的类型编码, const char *ivar_getTypeEncoding(Ivar v) //通过变量名称获取类中的实例成员变量 Ivar class_getInstanceVariable(Class cls, const char *name) //通过变量名称获取类中的类成员变量 Ivar class_getClassVariable(Class cls, const char *name) //获取指定类的Ivar列表及Ivar个数 Ivar *class_copyIvarList(Class cls, unsigned int *outCount) //获取实例对象中Ivar的值 id object_getIvar(id obj, Ivar ivar) //设置实例对象中Ivar的值 void object_setIvar(id obj, Ivar ivar, id value)
breakpoint 1 2 3 br list | delete | br set -a 地址 br set -n 方法名称
lldb 1 2 3 4 5 frame info image lookup -rn sendDidClick expression -l objc -O -- 🙂
汇编 assembly 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 x86: isa & 0x00007ffffffffff8ULL arm: isa & 0x0000000ffffffff8ULL register read po $arg1 po (SEL)$arg2 po $arg3 x0 返回值 fp x29 高地址 栈顶 lr x30 函数最后一条指令的下一条指令 sp x31 底地址 栈底 pc x32 当前要执行的指令 stp x29, x30, [sp, str x0, [SP, ldp x29, x30, [sp, ldr x5, [x6, mov x1, x2 adrp x8, 22464 bl
参考链接
https://www.jianshu.com/p/24c6cb55fb0d
https://www.jianshu.com/p/9487e194fdc9
https://www.jianshu.com/p/64cf03a79caa
https://www.jianshu.com/p/bdbac933c1be