能力值:
( LV15,RANK:936 )
|
-
-
2 楼
已经跟进到libc.so中了。
应该是判断字符类型吧,下面是android源码中的代码:
onst char _C_ctype_[1 + CTYPE_NUM_CHARS] = { _C, _C, _C, _C, _C, _C, _C, _C, _C, _C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _C, _S|(char)_B, _P, _P, _P, _P, _P, _P, _P, _P, _P, _P, _P, _P, _P, _P, _P, _N, _N, _N, _N, _N, _N, _N, _N, _N, _N, _P, _P, _P, _P, _P, _P, _P, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _U, _P, _P, _P, _P, _P, _P, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, _L, /* determine printability based on the IS0 8859 8-bit standard */ _L, _L, _L, _P, _P, _P, _P, _C, _C, _C, _C, _C, _C, _C, _C, _C, /* 80 */ _C, _C, _C, _C, _C, _C, _C, _C, /* 88 */ _C, _C, _C, _C, _C, _C, _C, _C, /* 90 */ _C, _C, _C, _C, _C, _C, _C, _C, /* 98 */ _P, _P, _P, _P, _P, _P, _P, _P, /* A0 */ _P, _P, _P, _P, _P, _P, _P, _P, /* A8 */ _P, _P, _P, _P, _P, _P, _P, _P, /* B0 */ _P, _P, _P, _P, _P, _P, _P, _P, /* B8 */ _P, _P, _P, _P, _P, _P, _P, _P, /* C0 */ _P, _P, _P, _P, _P, _P, _P, _P, /* C8 */ _P, _P, _P, _P, _P, _P, _P, _P, /* D0 */ _P, _P, _P, _P, _P, _P, _P, _P, /* D8 */ _P, _P, _P, _P, _P, _P, _P, _P, /* E0 */ _P, _P, _P, _P, _P, _P, _P, _P, /* E8 */ _P, _P, _P, _P, _P, _P, _P, _P, /* F0 */ _P, _P, _P, _P, _P, _P, _P, _P /* F8 */ const char *_ctype_ = _C_ctype_; // TODO: fix the header file so we don't have to duplicate all this inlined stuff. return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_U|_L|_N))); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_U|_L))); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _C)); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _N)); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_P|_U|_L|_N))); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _L)); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_P|_U|_L|_N|_B))); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _P)); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _S)); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _U)); return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_N|_X)));
|