用ida6.6 调试android的so文件时经常会报SIGILL的错误,意思是指令非法。而且这种错误基本都是发生在系统函数内部,像我遇到过的mmap,fopen,fgets等等。在这些函数内部如果用F8单步跟很容易某条指令就触发异常了,就得终止调试。但是如果在异常指令之后下断点,然后直接F9过去,异常又不会发生。其实这都是Android SDK自带的模拟器的坑,可能在某些地方没处理好,之前在4.0.3上面简直就是各种坑,时不时就来一下SIGILL,但是还没办法解决。最近在stackoverflow上发现也有人说这个问题了,模拟器的坑,现在换用5.0的模拟器,SIGILL很少出现了,但还是会有。

IDA动态调试so文件出现SIGILL-LMLPHP

05-11 10:56