[C.C++] c语言hook函数,另类iOS上的C函数hook

599 0
Honkers 2025-3-6 23:09:36 | 显示全部楼层 |阅读模式

hook C函数

先拿一个简单的c函数getenv上手。这个函数接受一个char *类型的参数(得是null terminated string)并返回对应的环境变量。

实际上在你的可执行文件启动时这个函数会被多次调用的。

用Xcode打开Watermark项目。创建一个symbolic breakpoint到getenv,并添加action:

po (char *)$rdi

并勾选Automatically continue after evaluating actions。

eace8a1b7c93

getenv断点.png

构建并运行app在模拟器上,你可以得到类似这样的输出:

"DYLD_INSERT_LIBRARIES"

"NSZombiesEnabled"

"OBJC_DEBUG_POOL_ALLOCATION"

"MallocStackLogging"

"MallocStackLoggingNoCompact"

"OBJC_DEBUG_MISSING_POOLS"

"LIBDISPATCH_DEBUG_QUEUE_INVERSIONS"

"LIBDISPATCH_CONTINUATION_ALLOCATOR"

... etc ...

(注意,更优雅的打印app的所有环境变量的方式是使用DYLD_PRINT_ENV。在Product\Manage Scheme中添加这个到Environment variables里面去。可以简单

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4009
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行