【2021春节】解题领红包之二 Windows 初级题
本帖最后由 hwjoy009 于 2021-3-2 20:59 编辑# 解题领红包之二 Windows 初级题
此题是一道PE逆向题,本文按常规思路来解。
打开发现提示输入密码。
## 1. 查壳
拖入查壳工具 Exeinfo PE
发现有UPX压缩壳,32位的PE文件
## 2. 手动脱壳
### 2.1 找OEP
使用x32dbg软件打开
断在入口点 pushad 上
自然想到去找 popad
搜索代码找到 popad,发下下面有一个大跳转 jmp
单步步过,找到 OEP
### 2.2 脱壳
使用x32dbg自带的插件 Scylla
Dump -> Fix Dump
得到CrackMe_dump_SCY.exe,但是发现打不开
### 2.3 修复
使用CFF Explorer 打开
勾选 Relocation info stripped from file
保存替换原程序
成功脱壳
## 3. 静态分析
使用IDA Pro (32-bit)打开脱壳后的文件
查找字符串找到 "Success" 字符串
分析代码可得,大致思路是输入的字符串和另一个字符串比较相等,输出 Success
## 4. 动态调试
使用x32dbg软件打开脱壳后的文件
查找字符串,发现有两个地方打印了"Error, please try again"
在字符串前的跳转语句分别打上软件断点
程序窗口内随便输入字符串进行调试,断点断在某一个跳转
修改zf寄存器的值跳过失败的逻辑
继续单步跟踪,发现调用了某两个函数之后,堆栈窗口打印出了
0019FEAC 006993C0 "2021HappyNewYear52PoJie"
猜测flag是此(并且之前的静态分析可得比较的字符串长度为23)
(其实不用脱壳也能跟到这些)
输入测试,正确
hwjoy009 发表于 2021-3-1 21:53
最后一个多出来的图片怎么都删不掉
你这个图片5,应该是插错位置了,不用删除可以调整一下,
不会调的话就找到图片5删了,再上传后插入到合适的位置。 搜索代码找到 popad,发下下面有一个大跳转 jmp
单步步过到,找到 OEP。这两步的截图呢没找到啊,最好更详细些,标注些更好
------新手小白:lol 最后一个多出来的图片怎么都删不掉{:1_937:} 我没脱,直接带壳搞的,稀里糊涂过的! 感谢楼主分享经验,一起学习进步 {:1_932:},厉害。 感觉大佬分享, 我脱壳脱了半天, 反正我是没有脱壳成功,也就卡住了{:1_893:} 这项游戏感觉不适合我{:301_998:}