a6217829
(a6217829)
1
向前辈们请教个问题
自己写的一个demo工程, 在ViewController类里面,写上这个方法, 然后方法里面调用exit(0),
实现的功能就是点击页面,调用exit(0)函数闪退, 如下图所示:
然后我自己写tweak,就是MSHookFunction hook exit 函数, 如下图所示:
(1) 其实我想得到的结果是,点击页面之后不闪退, 然后app正常运行,
(2) 但是最终测试发现, 用 MSHookFunction hook exit() 函数之后, 不调用orig函数, app确实没有闪退, 但是app页面会卡住, 好像成了一种假死的状态, 这是为什么呢 希望大佬解惑
之前听大佬说过,exit() 的汇编调用并不会保留返回地址,所以在调用完成后不会正常返回。
1 个赞
exit作为一个不会返回的函数,在编译的时候就不会保证他的下一条指令是什么
这个例子是直接到下一个函数去了
这个例子是直接到下一个块去了
所以你直接返回没有意义
2 个赞
a6217829
(a6217829)
4
这样我不去return, 可以么,hook成功了,但是好像点击屏幕还是闪退
a6217829
(a6217829)
7
希望exit函数被hook掉不执行,点击页面app正常运行 不闪退
a6217829
(a6217829)
9
上面Ouroboros前辈指点 exit是不会返回的函数, 我在想是不是因为我return返回了,所以我把return也注释了