三月DASCTF逆向 部分writeup by JamesHoi
drinkSomeTea 看到题目盲猜一波TEA加密,果不其然。之前没好好学,这次至少会做题了,之后有空要好好再看看详细的加密流程。附件给了个tea.png.out,即需要解密图片。32位exe,无壳在一开始的sub_401000函数里面,应该是判断是不是调试器(我没仔细看),用调试器的时候会退出程序,直接把call sub_401000 nop掉…
密码学
factor [Attack 7.2] Cryptanalysis of RSA and It's Variants 和书上的$Common \ Private \ Exponent \ Attack$差不了多少 e是对 $(p + 1)(q + 1)$ 取的,所以LLL之后解出来,b的第二维应该是 $1+k_1s1$, $$ k_1 = \fra…
angr-doc 8: Remarks
备注 Remarks 恭喜你!如果你一直读到了这里(编者注:这个仅仅适用于我们真正地写完到目前为止所有的TODO)那你就已经学习了angr中用于开始进行二进制文件分析的所有的基本组成部分。 从根本上说,angr就是一个模拟器。它是一个带有对环境的许多考虑,高度可操作的并且非常与众不同的模拟器,对,但是在它的核心部分,你使用angr是为了提取某些成块…
pwn整数溢出
pwn整数溢出 整数溢出原理 具体原理 ​ 在 C 语言中,整数的基本数据类型分为短整型 (short),整型 (int),长整型 (long),这三个数据类型还分为有符号和无符号,每种数据类型都有各自的大小范围,(因为数据类型的大小范围是编译器决定的,所以之后所述都默认是 64 位下使用 gcc-5.4),当程序中的数据超过其数据类型的范围,则会…
Python模板注入
前置简介 SSTI的简单讲解 SSTI 全称Server Side Template Injection,服务器模板注入。模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这大大提升了开发效率,良好的设计也使得代码重用变得更加容易。 与此同时,它也扩展了黑客的攻击面。除了常规的 XSS 外,注入到模板中的代码还有可能引发 RC…
SQL报错注入
当注入点不回显数据库查询的数据,那么通过一般的注入手段是无法返回相关数据库的信息,但是,如果查询时输入错误SQL代码会报错,并且是通过mysql_error(),mysqli_error()等返回错误,那么就存在报错注入的可能性。 所需函数 报错注入需使用Mysql函数XML Functions: 名称 描述 ExtractValue() 使用XP…
angr-doc 7: Analyses
分析 Analyses angr的目标是使在二进制程序上执行有用的分析更加容易。到这个的最后,angr允许你以一种能够轻松地应用到任何项目的通用格式将分析代码打包。我们之后将介绍编写你自己的分析,但是思想是所有的分析出现在project.analyses(比如,project.analyses.CFGFast())下面,并且可以作为函数调用,返回分…
angr-doc 6: Execution Engines
执行引擎 Execution Engine 当你要求在angr中执行一步时,需要有什么东西实际执行这个步骤。angr使用一系列引擎(SimEngine类的子类)来模拟给定部分的代码对于一个输入状态的影响。angr的执行核心仅仅尝试队列中所有可用的引擎,使用第一个可以解决这步的引擎。下面是 默认引擎的列表,按照顺序是: 当上一步将我们带到一些无法继续…
angr-doc 5: Simulation Managers
模拟管理器 Simulation Managers 在angr中最重要的控制界面是模拟管理器,它允许你同时控制几组状态的符号执行,并使用搜索策略来探索程序的状态空间。在这里,你会学到如何使用它。 模拟管理器让你灵活地处理多种状态。状态按照“存储stash”来管理,你可以自由地步进,过滤,合并和到处查看。这能让你,比如,按照不同的速率步进两个不同的存…
angr-doc 4: Program State
程序状态 Programe State 到现在,我们为了展示angr操作的基本概念,只使用了angr的符号执行程序状态(SimState对象)最可能的方式。在这里,你会学到有关一个状态对象的结构和如何以各种有用的方式与它交互。 复习:读写内存和寄存器 Review: Reading and writing memory and registers …