2012-09-07 25 views
0

我正在處理crackme,並且發現緩衝區溢出,但是當我輸入\ xNN,其中N是0到F之間的任何值時,\和x被解釋爲他們自己的價值。我也試過\ xNN。如何將十六進制注入isoc99_scanf的程序集調用

該程序是一個Linux可執行文件,所以我正在回溯運行它。 該程序處理輸入,不是命令行調用的一部分。 我在ida中查看了程序,輸入由__isoc99_scanf完成。

我可以鍵入Unicode但04有問題,所以我需要弄清楚如何使用十六進制。

如果有人有一個非十六進制的建議,那也會很棒。

回答

0

你是什麼意思「不是命令行調用的一部分」?如果它在控制檯上,則可以使用

perl -e 'print "\xNN" | program

甚至

perl -e 'print "\n\whatever\xNN"' | program

來模擬加法輸入。標準輸出直接輸出到程序的標準輸入,就像輸入字符一樣。如果是圖形應用程序,則可以始終直接修補字節(說起來容易做起來難,here's how to do it on gdb)。

相關問題