《第3期-08 职称直考通》学习笔记

一、破解过程


查找字符串”很抱歉,注册失败“,会出来很多结果。找到和出错提示相符的,分析汇编代码,会找到关键跳;

00453310  |.  E8 4B20FBFF   call    00405360
00453315  |.  833D 0CDB5D00>cmp     dword ptr ds:[0x5DDB0C],0x1
0045331C  |.  0F84 23090000 je      00453C45
00453322  |.  E8 399BFBFF   call    0040CE60

只是更改关键跳是不够的,但是找到了常量0x5DDB0C,可以使用“查找所有常量”法了。在找到的所有的结果上设置断点。
2、再次点击注册,会断下来,

004532C0      E8 DB3F0000   call    004572A0                         
004532C5      A3 0CDB5D00   mov     dword ptr ds:[0x5DDB0C],eax      

分析一下代码: 004572A0这个call的返回值放到eax中,然后eax的值给了[0x5DDB0C]。这就说明004572A0的返回值给了[0x5DDB0C]。那么004572A0这个call就是关键call了。
3、进入04572A0这个关键call。
在断首下断点后,单步执行,发现最后eax的值为1。但是在单步过程中是有不少跳转,跳过了eax赋值为其他值的:2、3、4、5。于是猜测,是不是eax改为这些值就是注册版了呢?试验着将断首改为


修改为5,得到的是:


修改为4,得到的是:


修改为3,得到的是:


修改为2,得到的是:


不同的值对应于不同的版本。
二、视频总结
视频中,作者也是通过查找字符串找到了常量0x5DDB0C;接下来对0x5DDB0C地址处的内存下硬件写入断点,从而找到了关键call——04572A0;然后进入04572A0这个call内部,单步运行,注意堆栈窗口中出现假码和可疑字符串在一起,就复制下来。
最后把复制处的可疑字符串试一试。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys阅读 8,696评论 0 2
  • 9月21,22日,我与裕小的老师们一起走进渭南市实验小学进行为期两天的浸入式学习,学习的信息量很大,值得消...
    宋红利阅读 3,602评论 0 1
  • 在飞机的轰鸣声中入睡 在太阳的光照线里睁眼 挂着耳机出门 顶着暴晒工作 伴着空调午休 来到深夜 怀念一切
    动了秘道阅读 761评论 0 0
  • 继续读《晨间日记的奇迹》,我越来越感觉到写日记的动力更足了,因为有梦想在,晨间日记是实现梦想的引擎,拉近了...
    木子de天空阅读 1,261评论 0 0