拿到程序放入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 }

相关文章: