njctf2017

Author Avatar
Xzhah 10月 14, 2017
  • 在其它设备中阅读本文章

njctf2017
一道比赛时做出来的,一道今天回过头做的

echo_server

80487c1处应该是混淆了,把此处用010改为0x90就行。改了过后0x80487f3处同理。
处理过后的情况如下。


输入字符串与0x8048817处数据对比
8048817处数据

应该输入的字符串是

出现字符串NOW patch me ,很明显我们想跳到8048866处去,只需要在gdb中修改下内存就行了。
flag

on_the_fly

这个是看了wp才会做的
题目首先告诉你加密flag的7x

查找带有encypt的函数

IDA中查看

不断的rsi,rdi被调用,一般来说这两个寄存器是放参数用的。可是这个题目并没有让我们输入参数,那我们就强行赋值。

调试进去看,我们发现第一个是rsi的字符串与“111”异或后与rdi的字符串长度异或。第二个加密函”222”,以此类推

异或有一个特点,A异或B=C那么C异或B=A。所以我们把加密后的字符串拿进去再跑一遍就解密了,就很舒服。

最后flag