這是乙個比較簡單的程式 源程式如下:
#include #define password "1921512"
int verify_password (char *password)
void main()
else}}
當你隨意輸入password,程式會進行驗證。想要在不知道密碼的情況下就通過驗證該怎麼做呢?
方法一:通過od找到判斷語句,修改暫存器z,或者填充nop
開啟exe檔案,通過除錯,可以找到主函式入口點0x0040132b,按f2設斷點,f7進入
進入後,輸入密碼,如圖所示我隨便輸入了222,找到這個指令0x00401075,揭曉來他就會進行比較匹配,此時z=0,要使接下來的0x40108a不跳轉至incorrect,可以把0x40108a的z=1,繼續按f8執行
我們會發現直接跳轉至congratula
已經成功取得合法驗證!
方法二:利用棧溢位
這題已經給出了源**,可知buffer為32,那麼只需要輸入第乙個數不為1的32位數,覆蓋authenticated,
便可通過驗證,一下「4321」為一單元:
不修改原陣列的情況下反轉陣列
問題 在不修改原陣列的情況下反轉陣列 大家都知道reverse 但是這個方法是會改變原來的陣列,怎樣既可以訪問到原來的陣列,有可以讓新陣列實現元素反轉。首先,複習一下在陣列的方法中,哪些是修改原有的陣列,哪些是生成新的陣列。es6新增的擴充套件運算子非常好用。arr 就是複製陣列 let testa...
MySQL在知道密碼的情況下修改密碼
1.首先cmd開啟終端然後cd到你mysql的bin目錄下 c cd.c cd.兩次cd是退出c c cd d 安裝mysql的盤,我這裡是d盤 回車 當然如果你在外面配置了 環境變數 也就不要這麼麻煩了 d cd 你mysql的bin目錄 2.然後登入mysql 3.登入成功後下一步就是更改密碼 ...
centos7在忘記密碼的情況下修改密碼
centos7在忘記密碼的情況下修改密碼 1 在重啟系統過程中,快速在鍵盤上的上下鍵,之後按下e鍵,進入編輯模式 2 在編輯模式,移動游標到lang en us.utf 8,空格然後在追加 init bin sh 3 然後按ctrl x進行引導啟動,就進入到sh 4.2 的單使用者模式下 4 首先掛...