正则搜索

lldb用正则查找函数时记得要转义特殊字符

  • 现象

此处lldb去搜,本身存在的函数名=符号名:

+[FIRAnalytics sharedInstance]_51_block

但是却搜不到:

(lldb) im loo -rn "+[FIRAnalytics sharedInstance]_51_block"
(lldb)
  • 原因

此处用r=regex=正则的方式去搜索,所以字符串中:

  • 加号=+
  • 中括号= []

都是:正则中特殊的字符

所以此处把正则字符串当做普通字符去搜索,导致含义不对,所以搜不到

  • 解决办法

如果要使用普通字符,则应该加上反斜杠转义

im loo -rn "\+\[FIRAnalytics sharedInstance\]_51_block"

即可搜到:

(lldb) im loo -rn "\+\[FIRAnalytics sharedInstance\]_51_block"
1 match found in /private/var/containers/Bundle/Application/4BD12EFB-0A75-49DC-8059-EBCDCF21522D/WhatsApp.app/Frameworks/SharedModules.framework/SharedModules:
        Address: SharedModules[0x0000000000b8f7c8] (SharedModules.__TEXT.__text + 12096916)
        Summary: SharedModules`+[FIRAnalytics sharedInstance]_51_block

results matching ""

    No results matching ""