njctf2017

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

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

echo_server

1.png

80487c1处应该是混淆了,把此处用010改为0x90就行。改了过后0x80487f3处同理。
处理过后的情况如下。
2.png
3.png
输入字符串与0x8048817处数据对比
8048817处数据
4.png
应该输入的字符串是
5.png
出现字符串NOW patch me ,很明显我们想跳到8048866处去,只需要在gdb中修改下内存就行了。
flag
6.png

on_the_fly

这个是看了wp才会做的
题目首先告诉你加密flag的7x
7.png
查找带有encypt的函数
8.png
IDA中查看
9.png
不断的rsi,rdi被调用,一般来说这两个寄存器是放参数用的。可是这个题目并没有让我们输入参数,那我们就强行赋值。
10.png
调试进去看,我们发现第一个是rsi的字符串与“111”异或后与rdi的字符串长度异或。第二个加密函”222”,以此类推
11.png
异或有一个特点,A异或B=C那么C异或B=A。所以我们把加密后的字符串拿进去再跑一遍就解密了,就很舒服。
12.png
最后flag
13.png