<p> 前言:</p>
讯享网
Reversing.Kr、pwnable.kr/play.php
最近上网,看见的网址,感觉还挺不错的,专门针对reverse、pwn 玩玩。
Easy Crack

32ida打开。

进行组合得到:Ea5yR3versing



Easy Keygen
查壳:

文本内容:

32位ida打开。

看着像进行了异或操作。
可以下个断点看看:

结合代码生成内容,应该是通过name可以生成一个序列号
而题目意思,应该是让我们通过序列号去求解原name
序列号算法是xor运算,所以关键是求出v7的值。
可以通过od定位到目标位置调试,也可以ida静态分析。

脚本:
讯享网

验证:


Easy Unpack
查壳:

文本内容:

让我们寻找OEP?
32ida打开看看

这一看,就是加壳的程序,只是这壳并没有被识别出来。
方法一 通过od、xdbg 去手动脱壳,找到入口点。
方法二 通过PEID工具去寻找入口点。


00


Music Player
类似激活成功教程收费音乐……
文本内容:

大概就是音乐只能听一分钟。

程序:

先顺着它的规则来,


重放第二遍发现,还是一个 ” 1 “
那么根据它文本的提示,应该是 需要进行一个绕过
进行od + xdbg 跟踪
(因为 我od载入有问题,xdbg又没有显示字符)



大跳。
然后载入程序,会发现。

直接把jl改成jmp

然后我感觉就出来了。。
但是又出现这个:
两层保护 — — 叉掉之后直接结束播放。

分析得出。
控制弹窗的关键代码在此处。试过直接将jge改成jmp 但是还是会出现问题。(猜测是.text段,只读)

那我们,直接给jge内部指令给NOP掉。

运行:

flag在这里:-> LIstenCare
![]()
验证:


至此,前4题结束。
Replace
下载,查壳。

用od打开。(感觉,在reversing中,ida用的不会很多。)
先运行一下程序:

跟踪字符串。

jmp无条件跳转,照理来说,不可能同时会存在俩个jmp处于上下关系。。。不太理解
先简单运行一下程序。

第一个jmp之后观察:

跟踪目前EIP指令的位置。会发现:

C600 90C3( 寄存器传送 高低位 )是一个 NOP + ret的 数据指令 。
(这也是我们程序异常中断的原因,不过它是正常逻辑,而非混淆指令、花指令等)
这里,可以先NOP掉 —— 因为我们是想要看看程序执行流。


可以看到 00的jmp绕过了 —— correct!
那么,我们的解题思路,肯定是如何通过正常程序执行流去绕过jmp,这里就需要利用其程序本身的 C600 90C3 这条内置数据指令。

mov ,【EAX】,90
怎么可能才能让它准确的到达我们想去的位置呢?
别忘了,程序的控制流被你掌控了的。

如何,让其落在我们想要的 00 处呢?
我们已知的数据:
当输入 0 时 ,EAX = CB
当输入 ?何值? 时,EAX = 00
……
头疼,- - 密码的,计算机基础 + 寄存器标志位。


发生进位,而这又是32位程序。
最终答案:()A02A0AA6的十进制数值。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/168927.html