pwn x64下的格式化字串

2021-10-19 11:33:36 字數 733 閱讀 8797

提取碼:1111

**吧啦吧啦一大堆,實際上就是讓你猜乙個flag和真正的flag比對,比對正確會給你flag。= =我要是都知道flag還要你的flag幹嘛?!

斷點斷在_isoc99_scanf處,輸入aaaa。除錯到printf時,檢視棧的情況:

顯然,flag在棧上。

那麼你應該想到了,用%n$s讀取出來。現在問題是n是多少?從0x7ffffffdf00開始讀,是3嗎?那是x86的讀取方法,x64是把引數先放在rdi,rsi,rdx,rcx,r8,r9這6個暫存器中的。所以,n=6+3=9。確定好了n,**就好寫了。

字串格式化

sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...

格式化字串

通常在使用字串的時候,會對字串進行格式化,然後輸出或呼叫 一般我們使用替換標記對字串進行格式化 string str1 string.format add is 1,2,3 而且在c 中的替換標記可以以任意順序和次數出現在格式化字串中,但替換值是按順序排的,而且替換標記不能超出索引範圍 string...

字串格式化

例如 string s hello map.put target world string res format s,map 有什麼用呢?比如在some.properties中配置模板字串,但是如果用 這種方式,在配置了spring讀取properties注入變數的時候,這個變數就找不到會報錯。這個...