我的工作我的學校項目「ROP上ARM VS 86」獲取參數的字符爲ASCII碼
我已經做了在x86和現在試圖在ARM「ret2zp」我的工作,我需要幫助。
請幫助這樣的linux新手。
我下面就ARM方便利落例如'A Short Guid on ARM Exploitation' by Kumar & Gupta
在第41頁,(我的名聲是缺乏張貼img..sorry)
有一行
(GDB) R「的printf 「AAAABBBBCCCCDDDD \ X38 \ X84」
所以·庫馬爾·古普塔&試圖把字符數組AAAABBBBCCCCDDDD &「(帶有擴展ASCII碼。沒有什麼簡單的ASCII碼)
和我不能把我的字符數組放在我的代碼與'printf'命令的參數;
這裏是我使用'printf'的簡單代碼。
buffer_overflow.c
#include <stdio.h>
#include <stdlib.h>
void IShouldNeverBeCalled(){
puts("I should never be called");
exit(0);
}
void Vulnerable(char *arg){
char buff[10];
strcpy(buff, arg);
}
int main(int argc, char **argv){
Vulnerable(argv[1]);
puts(argv[1]);
return(0);
}
和它的作品作爲
[email protected]:~# ./buffer_overflow AAAABBBB
AAAABBBB
[email protected]:~# ./buffer_overflow 'printf "A"'
printf "A"
這樣的printf不工作如我所料。
我該如何使用'printf'作爲Kumar & Gupta這樣說?
當我把「'printf'\ x41」'「放進去時,我的程序如何得到參數」A「?
那是什麼printf?它在python上的功能是什麼?或者它是與Ubuntu的程序集成?
噢,我的Ubuntu是
[email protected]:~# cat /etc/issue
Ubuntu natty (development branch) \n \l
謝謝你對我的幫助。