13年360舉辦的某幾個逆向題的簡單分析

逆向1:bmp圖片修復c#

首先有一個坑,winhex搜索key就能找到一個key,不過固然falsewindows

 

下面就是解題思路:函數

094fce+36 = 094f98this

修改1:BM標識,在windows的標識spa

修改2:0xA處的大小爲固定值0x0036調試


 

逆向2: c#破解
 
ILlasm或者reflector靜態調試軟件
reflector直接就能夠反編譯出源碼,代碼沒加混淆以及反調試或者殼,
因此很簡單。
 
reflector反編譯結果:
private void btn_ok_Click(object sender, EventArgs e)
{
    if (this.textBox_Pass.Text == "")
    {
        MessageBox.Show("請輸入密碼!");
    }
    else
    {
        char[] array = this.textBox_Pass.Text.Replace(".", "-").Replace("7", "t").Replace("4", "a").Replace("1", "I").Replace("0", "o").Replace("O", "0").ToCharArray();
        Array.Reverse(array);
        string s = new string(array);
        s.ToUpper();
        char[] chArray2 = Convert.ToBase64String(Encoding.GetEncoding("UTF-8").GetBytes(s)).ToCharArray();
        Array.Reverse(chArray2);
        string str2 = new string(chArray2);
        string str3 = new string(Convert.ToBase64String(Encoding.GetEncoding("UTF-8").GetBytes(str2)).ToCharArray());
        if (str3 == "PTBpVGxSM1lqTWtVaE4yU0pOM1J2Qnph")
        {
            MessageBox.Show("密碼正確!密碼就是Key!", "成功");
        }
        else
        {
            MessageBox.Show("密碼錯誤!", "失敗");
        }
    }
}

  

字符轉換:blog

小寫字母o換成數字0圖片

數字0換成大寫0
_   .
t   7
a   4
I   1
 
PTBpVGxSM1lqTWtVaE4yU0pOM1J2Qnph
解密獲得  =0iTlR3YjMkUhN2SJN3RvBza
逆序       azBvR3NJS2NhUkMjY3RlTi0=
解密獲得  k0oGsIKcaRC#cteN-  
逆序       -Netc#CRacKIsGo0k  
最後變換獲得key
key: .Netc#CR4cK1sG0Ok
 

 
 
逆向3:PE文件修復+異常的構造
 
通過分析咱們只需在4010C2處構造一個異常便可,這裏我構造了一個訪問異常。
SetUnhandledExceptionFilter函數設置了一個對異常的處理,參數就是異常處理函數地址。
 
 
異常處理函數:
 
 key就是MessageBox彈出框的內容。
相關文章
相關標籤/搜索