1. 程式人生 > >破解,實驗吧之證明自己吧

破解,實驗吧之證明自己吧

迴歸老本行,繼續破解
載入od,字串查詢,一下找到了關鍵,進入
這裡寫圖片描述
這裡只有一個call,只能是它了。
跟進去,用ida檢視
這裡寫圖片描述
有一個a1和v5,
v5是引數,a1是臨時變數,很顯然v5就是我們輸入的假碼而a1就是真正未加密的註冊碼了
開啟od跟蹤看ida裡第一個跳轉
這裡寫圖片描述
不難找到a1就在下面堆疊處的19f754開始0xe個位元組
不讓這個跳轉跳,繼續分析
下面第一個迴圈ida寫的很清楚,加密假碼,第二個迴圈加密真碼。
這裡寫圖片描述
這裡是加密完成的註冊碼
吧這個註釋區裡的值和0x20 xor就是了 O(∩_∩)O
int main()
{
char strT[0xe]={0x68,0x57,0x19,0x48,0x50,0x6e,0x58,0x78,0x54,0x6a,0x19,0x58,0x5e,0x06};
int v2=0;
do
(*strT+v2++)-=5;
(*strT+v2++)^=0X20;
cout<<*strT;
while(v2