时隔许久的ctf感想

加了个社团,正好这次省内有比赛,就参加了。

不如说ctf,这种东西,我老早就不大接触了。。

这次是三人一组,和两个学长一起_(:з」∠)_。。学长们都好强啊。。像我这种只能划水的。只能默默的看着了。。

因为早上体测时间和比赛开始时间撞上了。所以错过了一些题目。

中午的时候弄Misc,是一道图片隐写。我没看题目,看了下pcap文件,一看是一个分析sftp的。

乐了。东西全部提取出来了。其中一个是假flag。结果一看题目,Misc,好哇是隐写。

想了半天以为是什么高级隐写,分析了IHDR什么分析了半天,错失了一血的机会。

最后确实普通的LSB低位隐写就行了。。

之后有一道题目很有意思。

拥有写任意文件的权限,但是任意文件之前会必须执行一个die命令来退出。这就很讨厌了。

被这个题目卡了半天,最后还是看了大佬的博客谈一谈php://filter的妙用

才解出来的。。

还有一些题目,比方说flask那题目。

标准的转义漏洞拿secret_key计算得出admin的session然后登录拿flag。

我到最后快结束了才知道这题目是有代码的。惊了!!!

然后花了一些时间审计代码。

就快要得出结果的时候结束了_(:з」∠)_。。真的好可惜啊。

还有就是加密和逆向,这两个,前面一个是看得懂代码看不懂意思(。后面哪个是看不懂代码但是懂的意思hhhh,但是无论哪个对我来说都是苦手级别的存在,所以就完全跳过了QAQ

通过这次,我也感觉我PWN水平太弱了。PWN题目感觉是我明明可以驾驭的,但是之前因为没有驾驭的经验所以导致这次完全的失分。

第一道题是很明显的溢出漏洞,第二个是很明显的format溢出。

不对,是非常明显,而且还给出了bin文件。

理论只要上去构造溢出exp,然后去nc连接执行

就行了,但是因为没有经验,现场去学习也太难了。

所以无奈只好放弃了。。

最后排名的话,还算过得去,原本是二十多名,前几名都是省内那种dalao级别的学校,RBQRBQ,tqltql。

但是最后瞬间低了十名,感觉是同学校的交换flag还是啥_(:з」∠)_。。毕竟是同一个学校的。

不过即便是这样,决赛应该还是能进的吧。。

AWD倒是真的没怎么打过Hhhh这次过去貌似真的只能划水了23333

Tags: ctf

《过时技术研究计划》

inline hook
ssdt hook
dkom

Tags: none

ARM的GCC下内联汇编的基本使用手册

简要

突然不知道怎么的想踩这个坑。然后rootkit隐藏文件就咕咕咕了。不过还好,这个坑踩完了,接下来就能滚回去填坑了。

汇编不难,蛋疼的是各种稀奇古怪又十分蛋疼的调用约定和很麻烦的调试

x64下,基本寄存器和win32没啥区别,可以更具我之前的一篇汇编基础文章来看。

文章地址:汇编学习笔记

arm下是强制使用fastcall,也就是说前四个参数是强制使用寄存器传参的,所以在调用之前一定要记得push。

同时AT&T的语法是从左到右,而intel的语法是从又到左。

同时,GCC内联汇编的语法和win也不怎么一样,调用怎么说呢,说简单也不简单,说麻烦也不麻烦

详情可以参考基本文档:GCC内联汇编

以及几种常用的寻址方式

(1) 直接寻址

movl ADDRESS, %eax

ADDRESS其实就相当于"地址或偏移"里的地址,反正就是一个数字。

(2)寄存器寻址

其实上面的例子也包括了寄存器寻址,顾名思义%eax就是寄存器寻址,代表对这个寄存器本身的写入或读出。

(3)立即寻址

movl $2, %ebx

我一直觉得立即寻址算不算寻址,反正它的意思就是把2这个数字写入%eax寄存器,$2就是立即寻址,其实就是立即数。

(4)间接寻址

movl (%eax), %ebx

(%eax)就是间接寻址了,意思就是访问eax寄存器里的数值所代表的地址。相当于通用公式里的%基址或偏移量寄存器。

(5)索引寻址(变址寻址)

movl 0xFFFF0000(,%eax,4), %ebx

0xFFFF0000(,%eax,4)就是索引寻址,意思是从0xFFFF0000地址开始,加上%eax * 4作为索引的最终地址。请自行匹配上面的通用公式。

(6)基址寻址

movl 4(%eax), %ebx

4(%eax)就是基址寻址,意思是以eax寄存器里的数值作为基址,加上4得到最终地址。也可以匹配到上面的通用公式,而且这个是很常用的寻址方式

接下来就是代码实现

阅读全文...

Tags: 汇编, arm, linux
文章总数:117篇 分类总数:3个