hwjoy009 发表于 2021-3-1 21:39

【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)
(其实不用脱壳也能跟到这些)
输入测试,正确

佚名RJ 发表于 2021-3-2 09:50

hwjoy009 发表于 2021-3-1 21:53
最后一个多出来的图片怎么都删不掉

你这个图片5,应该是插错位置了,不用删除可以调整一下,
不会调的话就找到图片5删了,再上传后插入到合适的位置。

wtanywn 发表于 2021-3-1 22:06

搜索代码找到 popad,发下下面有一个大跳转 jmp

单步步过到,找到 OEP。这两步的截图呢没找到啊,最好更详细些,标注些更好
------新手小白:lol

hwjoy009 发表于 2021-3-1 21:53

最后一个多出来的图片怎么都删不掉{:1_937:}

gunxsword 发表于 2021-3-1 22:07

我没脱,直接带壳搞的,稀里糊涂过的!

梦旅意中人 发表于 2021-3-1 23:11

感谢楼主分享经验,一起学习进步

weilai1917 发表于 2021-3-2 08:55

{:1_932:},厉害。

chenerndong 发表于 2021-3-2 09:08

感觉大佬分享, 我脱壳脱了半天,

yilesoft 发表于 2021-3-2 09:31

反正我是没有脱壳成功,也就卡住了{:1_893:}

PriceXiao 发表于 2021-3-2 09:40

这项游戏感觉不适合我{:301_998:}
页: [1] 2 3
查看完整版本: 【2021春节】解题领红包之二 Windows 初级题