Rust宏魔法——第二辑(

又来整点奇技淫巧了

这期就玩玩用声明宏来生成宏(

总结可以直接看 👉 省流

假设有以下的奇怪情景:

你整了一个日志系统,但是其中的输出内容是预设好的(当然也应该预留一个比如 Other 的来自定义内容)

然后你想要给每一种输出内容都注册一个宏,并且有些输出是带有 “{}” 的,因此你希望能够有类似下面这个效果:

1
2
app_start_failed!(e)
// App start failed due to the error : {e}

也就是像 println! 之类的宏能够接受不定数量的参数,具体看格式(也就是你预设字符串里面有几个 “{}” )

Read more »

Shellcode编写入门

为什么要手写shellcode?

现在的题目对shellcode做了越来越多的限制,比如限制长度,限制特定字符等等。所以一些通用性的shellcode已经很难再起作用,针对某个二进制文件编写特异化shellcode势在必行。

Read more »

Rust宏魔法——第一辑(不知道后面还会不会更新,总之这是个系列)

注:本文默认你已经有一定的Rust基础

rust的宏的强大相信大家肯定听的不少,本篇就简单说说rust的过程宏

rust的宏有好几种,有基于模式匹配的,还有可以直接对语法树动手的,过程宏就是可以修改语法树,可以在编译器派生代码:比如有个test crate,然后它依赖于test_macro crate,而后者是一个proc-macro库,也就是里面定义了过程宏,编译时就会先编译test_macro然后用test_macro的对test的语法解析流修改再丢给编译器,所以可以实现很多非常抽象的操作。

写本文的契机是,前段时间在Rust中文社区群里看到有人问能不能用宏把json生成一个enum(json只有一层),这个需求和过程宏还是很契合的,所以就简单实现了一下,以下内容就是对实现的讲解

Read more »

IDA Python入门(todo)

ida pro7.7已经基本普及了,所以本篇文章是基于ida pro77和python3环境编写。

不可否认的是ida pro在静态分析上极为强大,不过动调方面还是比起其他工具稍显不足,而idapython提供了大量的ida的api,能一定程度上缓解动调的缺陷,这里就给大家简单介绍一下(

PS:参考了Q神的 http://www.qfrost.com/posts/ctf/idapython ,并且修正为了新版ida python的api

Read more »

Include:

  • This book?

  • Before Start

  • Quick Start with a small Game

  • Improve your Rust code (TODO)

  • Others (TODO)

Read more »

概述

长期更新中……

既然选择这条注定艰难的路,那么话不多说,直接开始吧!(拜托~,pwn掉系统什么的真的超帅的!)

Read more »

先写点简单的,后面看情况补充……

Read more »

  • NSSCTF-2nd(pwn方向全部,re两道)
  • WMCTF(待补充)
  • SEKAICTF(re一道)
  • 也许还有……
Read more »

比赛详情:misc(7/9), pwn(1/9)

已经从二进制手变成misc手了,悲

排名

Read more »