不用反汇编!LLDB对Objective-C函数下断点的黑科技


#26

嗯书上有我让他去看书然后把后续回复删了。
无论如何,感谢您的输入


#27

我看了下,这个是UIKit给NSObject增加的方法,逆向下这两个方法,可以照着在Mac OS X上写一个…
主要用了class_copyMethodList,class_copyPropertyList这两个函数

-[NSObject(IvarDescription) _methodDescriptionForClass:]
-[NSObject(IvarDescription) _shortMethodDescription]

#28

methods

Dumps all methods inplemented by the NSObject subclass (iOS, NSObject subclass only)

(lldb) methods UIView
command regex methods ‘s/(.+)/expression -lobjc -O – [%1 _shortMethodDescription]/’


#29

根据书中的设置断点方法,但是出现错误,显示不可以。和这个错误很像

(lldb) br s -a 0x2677EC2C
warning: failed to set breakpoint site at 0x2677ec2c for breakpoint 1.1: error: 2 sending the breakpoint request
Breakpoint 1: address = 0x000000002677ec2c

然后我找到了咱们这个问文章,确实可以获取到类中的方法。地址也是可以的。我现在用做的也是MobileMail.

但是问题是:

1.subroute的方法,如何打断点?使用咱们的方法?
2.我的是ARM64架构,为什么UIKit反汇编出来的方法没有名称.反汇编其他的App有方法名称的.


#30

awesome!!


#31

so good!


#32

mark 下,找地址便利了很多:+1:


#33

张总 用这个提示 error: unable to execute script function 命令行和Xcode都一样提示这玩意儿。。是我哪里少配置什么了嘛 我的步骤 1 下载py 2 touch ~/.lldbinit 3 vi command script import 脚本路径 4 lldb 5 bom xx xx 提示这个错误 不能执行脚本方法


#34

为什么我的不行哇…
帮我看下这个问题,困扰我两天了, 求解答 http://bbs.iosre.com/t/lldb/10258/6


#35

cool, 3Q


#36

厉害~以后逆向省事多了~


#37

各位大哥这个问题解决了嘛? @AloneMonkey @Zhang @snakeninny

(lldb) po [MMServiceCenter _shortMethodDescription]
error: Execution was interrupted, reason: internal ObjC exception breakpoint(-3)..
The process has been returned to the state before expression evaluation.


#38

流弊流弊~


#40

你把其他断点先禁用了试试?


#43

没有其他断点。

我attach的是一个系统的后台进程。 akd


#45

so cool


#46

逆向AppStore为啥输入的是微信的指令


#47

报同样的错,只是顺手把他那个copy下来了。


#48

那就解释通了。akd没有加载UIKit。 这个方法是uikit的category。解决方案就是自己加载一遍uikit


#49

谢谢啦, 明天早上就试一哈