zoukankan      html  css  js  c++  java
  • reversing.kr replace 之write up

    好似reversing除了前几个容易些,后面的都很难的。看wp都很困难。首先wp提示crtl+n查看程序所有函数,并且找到了测试函数:

    补充:

    GetDlgItemInt函数通过发送控件WM_GETTEXT消息来检索指定控件的文本。 该函数通过剥离文本开头的任何额外的空格,然后转换十进制数字来翻译检索到的文本。 该功能在到达文本末尾或遇到非数字字符时停止转换

    而我们去运行程序发现如果我们输入数字,则出现如图的情况,而如果输入的是字母,文本框没有任何反应,因为我们要找到测试文本框的函数:

    然而宝宝我换了n多个od都没有得到和作者同样的结果:

    后来运行程序后再用ctrl+n神奇的出现了:

    那我们就按照wp一步一步来:跟进目标函数,我们发现了如下目标函数:

    f8一直向下执行:

    我们发现程序走到这里就执行不下去了,这次我们输入0,观察此时对应的EAX=0x611605cb,于是我们分析得到由于我们输入错误所以eax到了错误的地址,所以eax=输入+0x611605cb,我们再回过头来看下最初的程序:

    由再上面一张图eax为0x90查找资料0x90表示为nop指令。如果我们把eax覆盖到ascii前面两条jmp指令,那么我们的程序就可以执行到下面的指令了,所以我们输入的值为0x100401071-0x611605cb=2687109798:

    这题真的很不简单!

  • 相关阅读:
    2020牛客寒假算法基础集训营4-I 匹配星星【贪心】
    P1880 [NOI1995]石子合并【区间dp】
    P1280 尼克的任务
    P1041 传染病控制【暴搜】
    Heavy Transportation POJ
    【空间】C++内存管理
    【编译器】G++常用命令
    【NOIP2011】【Luogu1003】铺地毯
    【Luogu1739】表达式括号匹配
    【Luogu1160】队列安排
  • 原文地址:https://www.cnblogs.com/liuyimin/p/7298239.html
Copyright © 2011-2022 走看看