five

1、iOS,tweak特指那些能够增强其他进程功能的dylib。
2、一个tweak的核心是各种hook,而绝大部分的hook是针对Object-C方法的。
3、对象、方法、实现是tweak的主战场。
4、在OC里,方法和实现的关系不是在编译时决定,而是在运行时决定。
5、我们可以通过改变实现和方法的对应关系,赋予一个方法新的意义,从而达到更改对象功能的目的,
6、description函数能够把对象的内容表示成一个NSString,object_getClassName函数能够把对象的类名表示成一个char*,两者可分别用%@、%s打印出来,这个就是解析参数提供了足够的参考。
%hook SBScreenFlash
- (void)flashColor:(id)arg1 withCompletion:(id)arg2 {
%orig;
NSLog(@"iOSRE: flashColor: %s, %@", object_getClassName(arg1), arg1); // [arg1 description]       arg1
}
%end
7、grep LibNotifyWatch: /var/log/syslog
8、确认 PhoneSettingsController所在的目标文件来自Preferences.app还是来自一个PreferenceBundle:
----
FunMaker-5:~ root# grep -r PhoneSettingsController /Applications/Preferences.app/
----
Yuanlingde-iPhone:~ root# grep -r PhoneSettingsController /System/Library/
Binary file /System/Library/Caches/com.apple.dyld/dyld_shared_cache_armv7s matches
grep: /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGCorePDF.dylib: No such file or directory
grep: /System/Library/Frameworks/CoreGraphics.framework/Resources/libCMSBuiltin.dylib: No such file or directory
grep: /System/Library/Frameworks/CoreGraphics.framework/Resources/libCMaps.dylib: No such file or directory
grep: /System/Library/Frameworks/System.framework/System: No such file or directory
Binary file /System/Library/PreferenceBundles/MobilePhoneSettings.bundle/Info.plist matches
Yuanlingde-iPhone:~ root# 
==》得出在这个MobilePhoneSettings.bundle
9、
----
[receiver message]
objc_msgSend(receiver,@selector(message))
----
[receiver message:arg1 foo:arg2 bar:arg3]
objc_msgSend(receiver,@selector(message),arg1,arg2,arg
objc_msgSend(R0,R1,R2,R3,*SP,* (SP+sizeOfLastArg),...)
[R0 R1:R2 foo:R3 bar:*SP baz:* (SP+sizeOfLastArg qux:...]
10、金句:函数的前4个参数放在R0~R3,其他参数存放在栈中,函数返回值放在R0.
10、用LLDB看看这个方法到底执行了什么操作。
(lldb) p (char *)$r2
(char *) $2 = 0x2c4140f2 "_sendAction:withEvent:"//打印出方法SEL
----
(lldb) x/10 $sp
0x003735a8: 0x160a6120 0x00000001 0x14d73c90 0x160a6120 0x003735b8: 0x2c3d9be5 0x003735d4 0x2bc6ebd1 0x14d73c90 0x003735c8: 0x160a6120 0x00000040 //打印栈
----























你可能感兴趣的:(five)