RCTF 2017 easyre-153
2024-10-18 21:27:46
die查一下发现是upx壳 直接脱掉
ELF文件 跑一下:
没看懂是什么意思 随便输一个数就结束了
ida打开 看一下:
pipe是完成两个进程之间通信的函数 1是写,0是读
fork是通过系统调用创建一个“子进程”的函数
fork的返回值,在子进程里面是0,在父进程里是子进程的进程id
所以我们可以很容易看出来 在子进程里面,由于v5==0,所以会输出刚刚我们看到的 OMG!!!! I forgot kid's id 然后将69800876143568214356928753通过pipe传给父进程
完成这个任务后,子进程就会exit(0)
至于父进程,由于v5!=0,会跳过子进程刚刚执行的部分,直接读取子进程传给他的那一串数字 并且读取用户输入的v6
如果v6==v5 那么就会继续进行下面的操作
所以在新的终端里面用 ps -A 命令找到进程id:
可以看到子进程9403已经被杀死了,在原来的终端里输入9403:
但是提醒的是 flag is not here ......
那么打开lol函数:
应该是很简单的操作 于是:
a1=''
s=''
s+=chr( 2 * ord(a1[1]))
s+= chr(ord(a1[4]) + ord(a1[5]))
s+= chr(ord(a1[8]) + ord(a1[9]))
s+= chr(2 * ord(a1[12]))
s+= chr(ord(a1[18]) + ord(a1[17]))
s+= chr(ord(a1[10] )+ ord(a1[21]))
s+= chr(ord(a1[9] )+ ord(a1[25]))
print(s)
输出flag:
rhelheg
最后提交必须是RCTF{rhelheg}......有点坑
最新文章
- Linux 平台静默安装 Oracle客户端
- 外边距塌陷之clearance
- 设计模式之美:Role Object(角色对象)
- 安装和使用cocoapods
- LeetCode Verify Preorder Serialization of a Binary Tree
- MySQL预处理语句
- HYSBZ 2145	悄悄话
- BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
- Android ANR、Force Closed(转)
- on使用详解
- 配置uwsgi
- 详谈kafka的深入浅出
- STM32L476应用开发之五:数据保存与SD卡操作
- 《你不知道的javascript》读书笔记2
- 17-(基础入门篇)GPRS(Air202)串口
- DapperExtensions and Dapper.Contrib在表构架不是默认dbo时的处理 DapperExtensions and Dapper.Contrib with non-dbo Schema
- 18-10-18 Python 思维导图 很棒的
- python中,获取字符串的长度
- JDBC中处理事务,小Demo
- 操作XmlDocument时,出现";System.OutOfMemoryException";异常,如何解决加载大数据的情况?