Linux gdb 破解软件密码
備注
完整的程序的示例代碼在
https://github.com/SimpleSoft-2020/gdbdebug/
這兒有一個(gè)完整的破解視頻在這兒
https://edu.csdn.net/course/detail/28981
********************************************************************************************************
?
這兒有一個(gè)小程序,運(yùn)行的時(shí)候需要輸入密碼,如果密碼輸入錯(cuò)誤,不能運(yùn)行,如圖所示:
如果密碼輸入成功,則會顯示一個(gè)紅色的桃心,如圖所示。
假設(shè)我們不知道這個(gè)軟件的密碼,那我們就可以通過gdb調(diào)試的方式來獲取這個(gè)軟件的密碼是什么
下面是詳細(xì)步驟:
啟動(dòng)調(diào)試
執(zhí)行命令 gdb ./crack-section
輸入r命令,直接運(yùn)行,如圖所示:
中斷,查看調(diào)用棧
在輸入密碼的地方,然后按住ctrl+c,中斷下來。
執(zhí)行命令:bt,查看調(diào)用棧情況
切換幀
執(zhí)行命令 f 6切換到6號幀
打開反匯編窗口
輸入layout asm命令,打開反匯編窗口
設(shè)置斷點(diǎn)
在0x5555555554be地址處,設(shè)置斷點(diǎn)
命中斷點(diǎn)
輸入c繼續(xù)運(yùn)行,然后隨便輸入一個(gè)密碼,比如asd
然后在斷點(diǎn)處中斷下來。
查看密碼信息
在命令窗口中輸入命令:
x /s $rdi
x /s $rsi
其中寄存器$rdi中存儲的就是我們輸入的asd經(jīng)過加密后字符串
$rsi中存儲的就是內(nèi)置的密碼,也是經(jīng)過簡單加密后的結(jié)果
求解密碼
只要我們推出asd到WiZ的關(guān)系,我們就知道了"I_cfb[Ie\\j"對應(yīng)的原始字符串是什么
asd到WiZ,就是每個(gè)字符-10,所以"I_cfb[Ie\\j"對應(yīng)的原始字符串就是每個(gè)字符+10
所以就得到了密碼字符串為SimpleSoft
備注
完整的程序的示例代碼在
https://github.com/SimpleSoft-2020/gdbdebug/
完整的破解視頻在這兒
https://edu.csdn.net/course/detail/28981
********************************************************************************************************
?
?
總結(jié)
以上是生活随笔為你收集整理的Linux gdb 破解软件密码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++语言链表的排序与查找定位
- 下一篇: java function获取参数_「J