Android 4.4.4 で sys_call をフックしようとしましたが、カーネル バージョンは 3.4 で、LKM を使用して実行しています。まず、SMS の送信またはダイヤル動作を取得するために sys_write をフックしようとします。これが私のフック sys_write コードです。
asmlinkage int hack_sys_write(unsigned int fd,char *buf,int count){
if(strstr(buf,"AT+CMGS")||strstr(buf,"ATD"))
{
printk("buf is %s\n",k_buf);
// the result is AT+CMGS=NUMBER(not tel number,just like 18,14..)
}
return original_call_write(fd,buf,count);
}
実際、SMSやダイヤル番号を送信すると情報をキャプチャできますが、SMSの内容についての詳細を取得することはできません. .次に、SMSまたは電話を受信したときに情報をキャプチャするためにsys_readをフックしようとしましたが、結果はnullです。フックsys_readコードは次のとおりです。
asmlinkage int hack_sys_read(unsigned int fd, char *buf, int count){
if(strstr(buf,"AT+CLCC")||strstr(buf,"AT+CMGR"))
{
printk("something is read aha %s\n", buf);
}
return original_call_read(fd,buf,count);
}
キーワード "AT+CLCC" または "AT+CMGR" をキャプチャできず、結果は何もありません。情報を取得できない理由とその解決方法を教えてください。よろしくお願いします。