#include<stdio.h> #include<stdlib.h> int main(void) { system("md autorun.inf"); system("attrib +r +a +h +s"); return 0; }
卡巴真的太扯了...這樣也抓= . =(資一乙,小宇路過...)
聽說卡巴還會和 windows 對幹 XD
我猜大概是 string literal 被原封不動地放到 .TEXT導致它以為你要 inject shell 吧(autorun.inf+ATTRIB)
大概吧.....(我不會組語 QQ)
我回宿舍拿程式反組譯看看,照你所說的應該會有特定區塊儲存文字資料,到時候看看 KAV 是不是針對特定區塊的資料作判斷。
改成:char a[] = "md autorun.inf";char b[] = "attrib -r -a -h -s";system(a);system(b);這樣不會被抓
卡巴真的太扯了...這樣也抓= . =
回覆刪除(資一乙,小宇路過...)
聽說卡巴還會和 windows 對幹 XD
回覆刪除我猜大概是 string literal 被原封不動地放到 .TEXT
回覆刪除導致它以為你要 inject shell 吧(autorun.inf+ATTRIB)
大概吧.....(我不會組語 QQ)
回覆刪除我回宿舍拿程式反組譯看看,照你所說的應該會有特定區塊儲存文字資料,到時候看看 KAV 是不是針對特定區塊的資料作判斷。
回覆刪除改成:
回覆刪除char a[] = "md autorun.inf";
char b[] = "attrib -r -a -h -s";
system(a);
system(b);
這樣不會被抓