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弹出框的内容。
相关文章
相关标签/搜索