好友
阅读权限30
听众
最后登录1970-1-1
|
Panel
发表于 2022-2-17 19:24
本帖最后由 2367765883 于 2022-2-17 20:13 编辑
1.查看题目提供的信息,只要我们玩通过这游戏就可以得到flag,直接下载附件
2.发现是个exe,先查壳,c\c++编译无壳
3.打开exe查看运行流程
完了一分钟,和作者的要求一样,我们必须玩过才能拿到flag,但是逆向怎么会乖乖听话玩呢?开始整活!
4.拖进od查看是否有关键字符
一搜索就发现了一串可疑字符,初步估计这个意思就是成果通过游戏以后的提示,那我们就跟进去
发现这个提示是一个函数过程,又看到有一个跳转是来到这个函数,那我们慢慢跟上去看一下
往上20多行代码以后发现一串字符,再次打开软件看,这串字符就是菜单,那我们就可以直接推测这几行代码就是显示菜单的,按照流程来看显示完菜单以后就是要求我们进行游戏,游戏用过以后才显示flag,那我们直接可以跳过游戏的环节直接显示flag,那就找个合适的位置直接jmp到显示提示信息的函数
5.往下一看发现一个retn,而且下面一堆int3 (int3 修改基本上不会影响程序),那我们让这个菜单函数执行完以后不进行正常的下一个函数直接跳到我们的成功提示地址,说做就做
6.地址太近是个短指令,还刚好影响不了int3代码,好的,保存运行
果不其然,成功了,提交试了一下确实正确了
如有错误,请指正,谢谢!
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|