Syscall crash in armv7

Exception Type:  EXC_CRASH (SIGSYS)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Filtered syslog:
None found

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x1c08a3f8 __syscall + 20
1   microvision                   	0x008bc2ee 0x4000 + 9143022
2   libdispatch.dylib             	0x1bf89782 _dispatch_client_callout + 22
3   libdispatch.dylib             	0x1bf95154 _dispatch_continuation_pop + 384
4   libdispatch.dylib             	0x1bfa014c _dispatch_source_latch_and_call + 166
5   libdispatch.dylib             	0x1bf8b284 _dispatch_source_invoke + 794
6   libdispatch.dylib             	0x1bf8dbd2 _dispatch_main_queue_callback_4CF + 596
7   CoreFoundation                	0x1c877d68 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
8   CoreFoundation                	0x1c875e18 __CFRunLoopRun + 848
9   CoreFoundation                	0x1c7c91ae CFRunLoopRunSpecific + 470
10  CoreFoundation                	0x1c7c8fd0 CFRunLoopRunInMode + 104
11  GraphicsServices              	0x1df73b40 GSEventRunModal + 80
12  UIKit                         	0x21b51a52 UIApplicationMain + 150
13  microvision                   	0x008ba9ee 0x4000 + 9136622
14  libdyld.dylib                 	0x1bfb64ea start + 2

RT,在线求解答。

貌似是系统没有这个服务,所以armv7是不能使用防挂载的方法么,无论是函数API还是指令调用。

上下文信息有点少!

从有限的信息来看崩溃来自于SIGSYS信号。

贴段书上的文字

该信号指示一个无效的系统调用。由于某种未知原因,进程执行了一条机器指令,内核认为这是一条系统调用,但该指令指示系统调用类型的参数缺失无效的。这种情况是可能发生的,例如,若用户编写了一道使用新系统调用的程序,然后运行该程序的二进制可执行代码,而所用的操作系统缺失不支持该系统调用的较早版本,于是就出现上述情况。


一句话:armv7上没有这个函数(因为这个,所以崩溃日志也没成功符号化?),至于是哪个函数,自己去找找吧。

syscall,ptrace,这两个防调试器挂载的函数都崩溃了,另外,使用指令实现同样崩溃,系统的Crash log已经很明确指出SIGSYS,意思是非法的系统调用,所以基本可以确定是armv7架构不支持防调试挂载服务,至于实锤,想找下对应的xnu版本来看看支持的指令列表的,但是不知道怎么找对应的xnu版本。