2669636795 发表于 2018-3-23 23:28

wl55917 发表于 2018-4-2 14:11

1.让程序退出 在堆栈找到退出地址 然后跟到代码
2.我看到了GETcahr call 00401A90 在每个然后查找命令把全部的getchar下段
入口:
004011C0|.E8 58010000   call QZY-B.0040131D
004011C5|.85C0          test eax,eax
004011C7|.75 5E         jnz short QZY-B.00401227

在CALL里吧EAX改为0或者jnz改nop

第一关:
00401584|. /0F85 82000000 |jnz QZY-B.0040160C
改JMP
00401618|.^\0F84 3FFFFFFF \je QZY-B.0040155D
改NOP
对不起恕我垃圾第二关一直循环 看的有点烦我还是操作系统吧   

WarWolf 发表于 2018-3-24 16:56

      while ( --a > 4 * b )
      {
          putch(8);
          putch(32); ■ ■ ■ ■ ■ ■
          putch(8);
      }

「浮光」/影★ 发表于 2018-3-24 01:04

恕我直言,是在下输了

qgy123 发表于 2018-3-24 01:14

机器新装的没虚拟机,第一关jnz改jz,密码我偷懒了,返回值扔ida里面一眼就看到了

rurg 发表于 2018-3-24 09:20

{:1_896:}碰巧看到了入口地址{:1_905:}

rurg 发表于 2018-3-24 10:34

{:1_923:}第一关找密码,没用心看算法,好象也没出明码的,自己缺点是讨厌算法分析,直接挂到了第二关。第一关算法在图中,讨厌这种绕的{:1_923:}

WarWolf 发表于 2018-3-24 11:46

为什么第二段XOR的值得出的结果转ASCII码是乱码,难道是第一段没有取好吗?

zbnysjwsnd8 发表于 2018-3-24 13:42

WarWolf 发表于 2018-3-24 11:46
为什么第二段XOR的值得出的结果转ASCII码是乱码,难道是第一段没有取好吗?

我这每次的结果还都不一样。。。

专业户 发表于 2018-3-24 14:02

这是什么不懂,还要继续学习

WarWolf 发表于 2018-3-24 16:05

本帖最后由 WarWolf 于 2018-3-24 16:09 编辑

zbnysjwsnd8 发表于 2018-3-24 13:42
我这每次的结果还都不一样。。。
根据第一段输入的结果不同,一个常量的左移位数就不同了.

2669636795 发表于 2018-3-24 16:24

页: [1] 2
查看完整版本: 吾爱CM测试在座的破解技术的斤两 难度:入门