摘要:
先将hash_函数处的指令全部替换成nop指令也就是"90 00",再运行pycdc即可看到main函数代码。发现main函数确实存在调用stuff函数进行代码自修改。 可以看出除main函数以外的其他函数应该都被加密了,需要调用stuff函数解密。我选择的处理思路是通过脚本主动调用stuff函数解 阅读全文
摘要:
模板注入 SSTI服务端模板注入 一、什么是SSTI 首先web服务的实现中使用了模板引擎,并且将参数传递的值当作模板一部分进行渲染(渲染这个词可能有点抽象,可以简单理解为将参数作为代码的一部分解释并执行了),这就是SSTI,服务端模板执行。 模板注入原理 服务端可以使用哪些模板引擎? 由于服务端可 阅读全文
摘要:
一、介绍 Go 语言是一个强类型静态语言,实现了 CSP 并发模型,并在 2012 年才发布首个稳定版。由于Go语言方便跨平台交叉编译,所以吸引了恶意软件开发者使用Go来开发恶意软件。 Go编译器会静态链接构建二进制文件,把标准库函数和第三方 package 进行静态编译,还将runtime 和 G 阅读全文
摘要:
一、ptrace系统调用 ptrace在内核中的实现是sys_ptrace函数,也可以说是SYSCALL_DEFINE4(ptrace, ...)。 其中sys_ptrace负责attach相关请求的处理,之后调用arch_ptrace函数来处理其余请求,而arch_ptrace函数也只处理一部分请 阅读全文
摘要:
一、介绍 历史: cBPF:Linux 2.1.75 -> eBPF:Linux 3.18 eBPF能做什么呢? 二、编写BPF程序 BPF程序类型 bpf_prog_type 该类型定义在/include/uapi/linux/bpf.h。 enum bpf_prog_type { BPF_PRO 阅读全文
摘要:
一、介绍 Rootkit这一概念最早出现于上个世纪九十年代初期,CERT Coordination Center(CERT/CC)于1994年在CA-1994-01这篇安全咨询报告中使用了Rootkit这个词汇。在这之后Rootkit技术发展迅速,这种快速发展的态势在2000年达到了顶峰。2000年 阅读全文
摘要:
题目描述 计算一个浮点数的立方根,不使用库函数。 保留一位小数。 数据范围:|val| \le 20 \∣val∣≤20 输入描述: 待求解参数,为double类型(一个实数) 输出描述: 输出参数的立方根。保留一位小数。 解题思路 代码如下: #include<iostream> #include 阅读全文
摘要:
题目描述 问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(注:能被*和?匹配的字符仅由英文字母和数字0到9组成,下同)?:匹配1个字符 注意:匹配时不区分大小写。 输入:通配 阅读全文
摘要:
题目描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开! 数据范围:字符串长度1\le length \le300 \1≤length≤300 进阶:时间复杂度:O(n^ 阅读全文
摘要:
题目描述 分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。 注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1! 如有多个解,请输出任意一个。 输入描述: 输入一个真分数,St 阅读全文