天天看点

一道熟悉od使用的经典题

拿到程序放入PE里查看发现有Aspack壳

一道熟悉od使用的经典题

用脱壳软件进行脱壳处理

一道熟悉od使用的经典题

打开文件让我们注册,随意输入后如图所示:

一道熟悉od使用的经典题

发现弹出一个框,这是很重要的线索,打开od下断点分析:

随意输入后到达登录失败弹出窗附近

一道熟悉od使用的经典题

通过分析附近的汇编可以发现两个值不相等时始终跳转至004012A1

一道熟悉od使用的经典题

数了一下有十六个,大致估计可能正确格式是输入16个字符,在004012A4 下断点重新启动程序输入16个字符,开始分析:

Pass[0]==B,该字符直接与0x42比较,0x42转换成ASCII再转换成字符为B

一道熟悉od使用的经典题

Pass[15]==Y 可以看出将字符存到eax寄存器,然后加上0x42等于0x57,计算和转换后的值为Y

一道熟悉od使用的经典题

Pass[1]==Z 这次将值存放到ecx中,然后用lea命令,意思是将ecx中的值减3存到eax中,用0x57减3转换后为Z,后面大致相同的计算方式,注意排序方式为从ebp-0x240到ebp-0x231为pass[0]到pass[15]

一道熟悉od使用的经典题

Pass[14]==A

一道熟悉od使用的经典题

Pass[2]==9

一道熟悉od使用的经典题

Pass[13]==b

一道熟悉od使用的经典题

Pass[3]==d

一道熟悉od使用的经典题

Pass[12]==7

一道熟悉od使用的经典题

Pass[4]==m

一道熟悉od使用的经典题

Pass[11]==G

一道熟悉od使用的经典题

Pass[5]==q

一道熟悉od使用的经典题

Pass[10]==9

一道熟悉od使用的经典题

Pass[6]==4

一道熟悉od使用的经典题

Pass[9]==g

一道熟悉od使用的经典题

Pass[7]==c

一道熟悉od使用的经典题

Pass[8]==8

一道熟悉od使用的经典题

排序后得出所需字符串为 BZ9dmq4c8g9G7bAY

邮箱输入格式为 [email protected]

注册码为: BZ9dmq4c8g9G7bAY

一道熟悉od使用的经典题

flag{ BZ9dmq4c8g9G7bAY }