同余 同余 同余 **定义:**设m是一个正整数,设a,b是两个整数,则a$\equiv$b (mod m),当且仅当 m | (a-b),称a, b模m同余。 换句话说,a, b模m同余当且仅当a, b用欧几里得除法除以m得到的余数相等。 **同余的保运算性:**设m是一个正整数,设$a_1,b_1,a_2,b_2$有: $a_1\equiv b_1$(mod m) $a_2\equiv b_2$( 2023-12-06 notes #mathematics
整数的可除性 整数的可除性 整除 定义:设a,b是两个任意的正整数,其中b$\neq$0,若存在一个整数q,使得:a=qb 则称b整除a,记为b | a。 整除的运算定理 1.设a, b, c$\neq$0是三个整数,若 c | a, c | b,则对任意整数s, t有:c | (sa+tb) 2.设a, b都是非零整数,若a | b,b | a,则a = $\pm$b ####Eratoshenes筛法 ** 2023-12-06 notes #mathematics
使用SendMessage()模拟鼠标操作 使用SendMessage()模拟鼠标操作 在样本分析工作中遇到一个样本,该样本先是打开Windows“运行”窗口,也就是常用的win + R的窗口,然后使用该窗口运行一个.chm文件,这个.chm文件的具体作用尚不清楚,不过杀软报毒,大概是实施二阶段攻击的恶意代码。 样本中使用SendMessage()来模拟鼠标操作,比较有意思,这里尝试复现一下。 具体思路是,先运行一个程序,打开该程序的窗口, 2023-08-06 experiment log #malware analysis
枚举系统进程检测虚拟机环境 枚举系统进程检测虚拟机环境 在样本分析的工作中遇到了一个样本,该样本通过枚举系统进程来实现反虚拟机的目的,这里简单记录一下。 原理 因为虚拟机一般都安装了vmtools的,而在虚拟机环境中vmtools对应的进程会在后台运行,该进程对应的可执行文件名称为"vmtoolsd.exe",所以恶意代码可以通过调用一些API来枚举系统内的所有进程,然后查找是否有vmtools的进程在运 2023-08-05 experiment log #malware analysis
使用已知明文攻击破解弱加密算法 使用已知明文攻击破解弱加密算法 在实习工作中拿到了一个样本,该样本名称为"2023最新财税规定.exe",SHA256: 36c3405eafd9bdb4c6dd0ca98a2a4779ab34b8777a36b38347316f09109a87e6,该样本在沙箱上检测为木马。 实际分析发现该样本的攻击行为分为多个阶段,然而本文主要是记录第二阶段所释放的加密文件的破解过程。 S 2023-08-03 experiment log #malware analysis
VMware虚拟机搭载TOR出网 VMware虚拟机搭载TOR出网 在样本分析的工作中,通常会存在出网调试的需要,而直接使用本地网络出网会存在被攻击者反向溯源的风险。 所以一种更加安全可靠的出网方案是走TOR出网,从而实现匿名性。 TOR(The Onion Router) TOR是一个开源项目,其目的主要是为用户提供匿名通信服务。TOR通过志愿者运行的服务器(节点)网络运行,这些服务器(节点)通过多层加密传递互联网流量,从而创建 2023-07-29 experiment log #binary analysis
Malware Analysis Lab07-02 EXP Malware Analysis Lab07_02 EXP Practical Malware Analysis Lab07_02 Experiment log. 这个实验的主要内容涉及Windows中的COM(Component Object Model)相关的接口。 Introduction to COM COM被实现成一个客户-服务器架构,客户端是那些使用COM对象的程序,服务器是那些可复 2023-03-03 experiment log #binary analysis
Malware Analysis Lab07_01 EXP Malware Analysis Lab07_01 EXP Practical Malware Analysis Lab07_01 Experiment log. 这个实验主要内容涉及Windows服务以及线程同步。 int __cdecl main() 首先看IDA对main()函数的反汇编结果: 123456789101112131415161718192021222324int __cdec 2023-03-01 experiment log #binary analysis
二进制加壳与脱壳 二进制加壳与脱壳 通常恶意软件作者为了避免恶意软件被二进制分析或者逆向研究,会对恶意软件进行加壳保护。 这部分的复现实验出了点问题,暂时搁置。 简单来讲,加壳就是将原来的可执行文件进行压缩或者加密,然后放在另一个可执行文件的数据段中,这个新的可执行文件将会在运行时对原来的可执行文件进行解压缩或者解密,这些操作都是在内存中进行的。然后再将其映射到内存中执行,整个过程都不会在磁盘上写入数据,所以也 2022-12-06 experiment log #binary analysis
custom disassemble Custom Disassemble 这里简单介绍一下代码混淆,常见的代码混淆都是基于指令重叠进行的,也就是误导反汇编器将本属于前一条指令的部分解释为当前指令的一部分,这样得到的反汇编结果必然是错误的,比如下面这样: 12345678910_start(){ __asm__ volatile( "jmp antidebug + 1\n" 2022-11-25 experiment log #binary analysis