工具
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