【Root-Me】 PE DotNet - 0 protection



水题。

开启挑战后,下载了一个 ch22.exe 文件,运行后是一个 UI 程序。

随意输入一个 password ,点击 Valider 按钮后,提示密码错误。

使用 IDA 打开这个文件,尝试反汇编(注意使用 Microsoft.NET. assembly 方式打开):

从左侧 Function name 可以找到 UI 程序每个组件模块的代码。

由于校验密码的行为是在我们点击按钮后触发的,因此可以猜测真正的密码被硬编码到这个点击行为的代码里面。

因此现在的目标应该是找到 Valider 按钮点击的事件代码。

而在 Function name 只有一个模块名为 CrackMe.Form1__Button1_Click,双击查看这个模块代码,可以发现这个模块调用了一个 compare 函数,而根据 compare 的结果,代码会流向两个分支,一个是验证密码失败,一个是验证密码成功,说明这就是目标代码。

不难注意到在 compare 函数前面有一个常量 DotNetOP ,很容易就会猜到这是硬编码到代码里面的真正密码。

尝试使用这个密码验证,挑战成功。


答案下载

flag 下载后的 flagzip 的文件需要手动更改后缀为 *.zip,然后解压即可(为了避免直接刷答案)


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
【Root-Me】 ELF x86 - Stack buffer overflow basic 1 【Root-Me】 ELF x86 - Stack buffer overflow basic 1
来源:Root-Me 题型:App-System 题目:ELF x86 - Stack buffer overflow basic 1 分数:5 Points 水题。 登录靶机后,在当前目录发现 3 个文件: .passwd : 明
2019-05-01
下一篇 
【Root-Me】 Shift cipher 【Root-Me】 Shift cipher
来源:Root-Me 题型:Cryptanalysis 题目:Shift cipher 分数:10 Points 水题,题目就是提示,位移加密(其实就是凯撒加密)。 点击挑战后下载了一个 ch7.bin 文件,文件内容是乱码。 考虑到
2019-04-23
  目录