0x01 修改int的值
用字符串末尾的null字符,覆蓋判斷邏輯返回的int的值。
最後成功如圖:
0x02 覆蓋返回地址的值
這裏是跳轉到了錯誤的0x61616161
直接跳轉到輸出密碼正確的地址。
0x03 執行我們的代碼
修改返回地址的值,跳轉到我們定義的代碼處(此處代碼可執行)
原理如圖,前提條件是修改了buffer的大小 用於存放我們的代碼
用字符串末尾的null字符,覆蓋判斷邏輯返回的int的值。
最後成功如圖:
這裏是跳轉到了錯誤的0x61616161
直接跳轉到輸出密碼正確的地址。
修改返回地址的值,跳轉到我們定義的代碼處(此處代碼可執行)
原理如圖,前提條件是修改了buffer的大小 用於存放我們的代碼