快捷搜索:

逆向开发中使用

2019-10-11 作者:2019精准正版资料   |   浏览(119)

安装facebook/chisel DerekSelander/LLDBLLDB会从默认的~/.lldbinit加载自定义脚本

git clone https://github.com/facebook/chisel.gitgit clone https://github.com/DerekSelander/LLDB.gittouch ~/.lldbinitvim ~/.lldbinit# ~/.lldbinitcommand script import pwd/chisel/fblldb.pycommand script import pwd/LLDB/lldb_commands/dslldb.py

lldb一般最常用的就是po(print object)

  • pviews 可以打印页面结构(报错需要引用UIKit expression @import UIKit
  • presponder 0x15feab460 可以打印响应链
  • methods 0x15feab460 可以打印属性和方法
  • search UIImageView 可以查找页面元素
    • b 可以用来打断点
    • po $x1 可以打印参数
    • pblock 可以打印block (逆向可以查看block里面的参数了)
 b [LoginManager requestDirectLoginInController:completion:failure:]Breakpoint 1: where = recipe`-[LoginManager requestDirectLoginInController:completion:failure:] at LoginManager.m:93, address = 0x0000000100748044 po $x3<__NSGlobalBlock__: 0x102fa9300> pblock 0x102fa9300Imp: 0x100311768 Signature: void ^(NSDictionary *, bool, bool);
  • e 可以和Cycript一样动态的调用函数、打印函数
 e UIApplication *$app = [UIApplication sharedApplication] e UIWindow *$keyWindow = $app.keyWindow e UIViewController *$root = $keyWindow.rootViewController po $root <UITabBarController: 0x1148c2400> e UIViewController *$f = [((UITabBarController *)$root).viewControllers firstObject] po $f<UINavigationController: 0x1148ca800> b [LoginManager requestDirectLoginInController:completion:failure:]Breakpoint 16: where = recipe`-[LoginManager requestDirectLoginInController:completion:failure:] at LoginManager.m:93, address = 0x0000000101630984 po $x0<LoginManager: 0x1c4a508f0> cProcess 42409 resuminge [0x1c4a508f0 requestDirectLoginInController:$nvc completion:nil failure:nil]

配合MallocStackLogging环境变量 使用lldb.macosx.heap.py位置/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/macosx/heap.py虽然表明OS X使用但是iOS也可以使用

  • 查看一个对象分配内存的堆栈(需要配合MallocStackLogging malloc_info -s)
  • 得到内存指定类的实例对象(objc_refs)
  • 得到一个内存地址所有被引用的地方
  • 搜索内存中指定的C字符串(cstr_refs)
 command script import ;;db.macosx.heap"malloc_info", "ptr_refs", "cstr_refs", "find_variable", and "objc_refs" commands have been installed, use the "--help" options on these commands for detailed help.

本文由正版香港马报免费资料发布于2019精准正版资料,转载请注明出处:逆向开发中使用

关键词: