IDA破解最简单的登陆框

原创文章,转载请注明出处:http://www.cnblogs.com/justinzhang/

      还记得当年本科的时候,一大群人围着一个国安的登陆框在哪儿破解。其实自己对安全方面的东西了解的非常的少,最近遇到一个非常牛逼的UML工具,可惜没有源代码、没有文档,在这种霸道的封杀之下,又点燃了学习反汇编&破解的热情。虽然这是一个非常非常简单的例子,但这是自己多年以来想做的事情,今天终于动手做了,也没有什么遗憾了~~

     首先,自己写了一个MFC程序,包含用户名和密码两个文本框,一个确定按钮,如果密码和用户名匹配,则弹出succ对话框,如果不匹配则弹出fa对话框。由于自己已经快一年没有写MFC了,所以这里记录下这个弱智的步骤。

     1>新建一个MFC应用程序工程,选择对话框应用程序。

     2>往对话框上拉两个text lab和两个Edit Control.

     3>双击确定按钮,在按钮的事件里添加如下代码:

void CLogONDlg::OnBnClickedOk()
{
    CString name,pass;
    GetDlgItemText(IDC_EDIT1,name);
    GetDlgItemText(IDC_EDIT2,pass);
    if (name.Compare(CString("justin"))==0 && pass.Compare(CString("111"))==0)
    {
        MessageBoxA(NULL,"succ","succ",MB_OK);
    }
    else
    {
        MessageBoxA(NULL,"fa","fa",MB_OK);
 
    }

 

最后的对话框如下所示:

image

 

现在我们要做的就是,用IDA获得正确的用户名和密码。

用IDA打开LogON.exe

image

image

 

在Strings中有该程序所有的字符串:

image

 

我们可以逐一的查看,很容易发现可疑的字符串,双击可疑的字符串,可以看到如下所示的内容:

image

 

我们尝试justin和111即可以等到正确的用户名和密码,虽然这个程序是自己写的,自己破解,听起来似乎很可笑,但是仔细想想就知道,用MFC写的程序,用这种方式来判断用户名和密码是否正确是非常不安全的,因为只需要用IDA反汇编,不用付出很大的代价就可以获得用户名和密码。至于如何避免这种情况,自己也正在学习当中。路漫漫其修远兮~~~今晚到此为止,开始MDA的工作了~~

image

posted @ 2012-03-27 20:06  justinzhang  阅读(8382)  评论(0编辑  收藏  举报