zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    不可小视视图对效率的影响力
    Maximum Margin Planning
    PhysicsBased Boiling Simulation

    Learning Behavior Styles with Inverse Reinforcement Learning
    Simulating Biped Behaviors from Human Motion Data
    Nearoptimal Character Animation with Continuous Control
    Apprenticeship Learning via Inverse Reinforcement Learning
    回报函数学习的学徒学习综述
    Enabling Realtime Physics Simulation in Future Interactive Entertainment
  • 原文地址:https://www.cnblogs.com/justinzhang/p/2420085.html
Copyright © 2011-2022 走看看