cgctf RE 480小時精通C

2021-09-03 07:53:54 字數 934 閱讀 1944

咕王今天有點膨脹,解決了兩個不需要靠腦子,只要靠眼睛的vm題目,就再看乙個

480小時精通c++,啥意思,看不懂提示

拖進ida,一大堆函式,這……elf檔案在linux底下執行一下,結果如下

處理可得加密後的flag

bdacsn4jo`q_g可以看到加密後的密文,靠關鍵字串定位

可以看出是兩個兩個輸出的

函式整體如下

看得我一臉懵……這啥,感覺也沒啥呼叫,就只能分析函式列表裡的函式了

邊上有許多encryptfunction,我看了開頭的幾個,如果不出我所料的話,每乙個函式其實都是一樣的,那我們分析乙個就夠了

直接在gdb裡面看看能不能劫持程式流程

先對printf附近打斷點,看看棧上引數具體偏移量

還挺清楚的,加密過的字串放在rax上,然後看一下解密函式的彙編

rdi存放要處理的字串,esi存放字串長度

最後我們修改rsi,rdi,rip就可以啦

搞定

CG CTF 480小時精通C

一.拖入ida,看看 和之前題,有點不一樣,不一樣在於,這個程式相等於將沒加密的字串,直接列印出來了,但是the encrypted is 引起了我的注意,所以我去看看有沒加密函式,結果還真有,一堆,但是在main方法上面,找到了真正加密的函式,大概就知道這題是考啥了,就是考個patch,有點類似那...

一小時學會C 6

c 6之前我們拼接字串時需要這樣 var name jack var results hello name 或者 var name jack var results string.format hello name 但是c 6裡我們就可以使用新的字串插值特性 var name jack var re...

用C語言解「12 24小時制」題

編寫乙個程式,要求使用者輸入24小時制的時間,然後顯示12小時制的時間。輸入格式 輸入在一行中給出帶有中間的 符號 半形的冒號 的24小時制的時間,如12 34表示12點34分。當小時或分鐘數小於10時,均沒有前導的零,如5 6表示5點零6分。輸出格式 在一行中輸出這個時間對應的12小時制的時間,數...