一些关键性核心代码,Objective-C 的类名和函数名可能会被开发者混淆成无意义的字符,如下图:
我们分析出混淆过后的类名大概的代码意思,可以对类名和函数名进行重命名,但是一个类里会有多个函数,每个类名都手动改太麻烦了,使用 IDAPython 脚本可以实现批量改类名,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
func_list = Functions() #获取所有函数列表 #遍历函数名称 for func in func_list: name = GetFunctionName(func) #获取函数名称 #替换函数名 if( "XXXXXXXXX" in name) : address = idc.LocByName(name) new_name = name.replace("XXXXXXXXX", "CoreClass", 1); MakeName(address,new_name) #重命名函数名 print('0x%x'%address) print name print new_name |