恶意代码分析12-2
前置先收集一下PE看看 字符串也收集一下有多余的资源节 导出
加载指定的模块 先分析上面sub_40149D函数sub_40149D下的属性调用svchost.exe 跟进下函数GetSystemDirectoryA 开始检索svchost.exe 文件关键代码 sub_40132C 函数进行加载指定模块操作获取指定资源文件 findresourceA 下的name属性 LOCALIZATION Type属性 UNICODE类型 并且为其开辟内存大小范围,在对其资源进行加密 sub_401000函数 并且保存到物理目录下,然后释放内存继续向下分析main 下判断的函数 sub_4010EA也可以看的出 前段0x5A4D 0x4550 验证PE文件的头 在检索svchost 。利用函数CreateProcessA挂起方式创建svchostReadProcessMemory 对 svchost 进行ebx +8 StackLimitGetProcAddress的 通过procname属性 “NtUnmapViewOfSection”卸载原本 stackWriteProcessMemory ...
hook_TLs (buuctf k00h_slT)
WaitForSingleObject 利用函数让下一步出现阻塞状态 进入上一个函数所调用的属性StartAddress对其汇编定位 jnz jz 给 nop先把call 90 nop 走一下啊 40176E后到40177A的nop对下面数据也进行转汇编格式这所出现的 反复调用对齐 call 进行nop 40179C到4017A8 这边利用双字节一个一个90反编译 看样子是完整的分析wccmp 一个进程比较 继续往下 sub_401500 中的函数 sub_401170 base64 的加密开始没有思绪了这个东西好像不是很重要 我回到主main 看看 下面 rdata 表在入口处有没有钩把更近TLS看看 三个选项case 0 sub_401600()后就 break 了case 1 一个IsDebuggerPresent()反调试函数 不允许调试他case 2 TlsCallback_0 的汇编代码 不允许替换成 0x90 也就是 不允许自己函数被nop 会对其dword_4A7000 进行修改case 3 对其函数修改 不过调用的是之前分析到的base64也就 ...
DASCTF 2023六月挑战赛|二进制专项 WP
careful看到 第一个 gethostbyname 下断进name 得到值 “welcome_t0_dasctf.com”第二个 gethostbyname name的值 “Just_An_APIH00k11.com”两种方法
12345678910111213141516171819202122232425262728293031323334#include <windows.h>#include <iostream>int main(int argc, char** argv){ char name[] = { "welcome_t0_dasctf.com" }; char* a1 = name; name[0] = *a1 ^ 0x3D; name[1] = a1[1] ^ 0x10; name[2] = a1[2] ^ 0x1F; name[3] = a1[3] ^ 0x17; name[4] = a1[4] ^ 0x30; name[5] = a1[ ...
恶意代码分析12-1
前言
不动态分析 静态问题利用strings 把 EXE 和 DLL 数据信息采集起来
可以看到exe 的一连几个函数 特别连续CloseHandle 关闭打开的对象句柄 ??whoOpenProcess 打开现有的本地进程对象CreateRemoteThread 创建在另一个进程的地址空间中运行的线程GetModuleHandleA 加载模块 此模块也必须由进程调用WriteProcessMemory 将数据写入到指定进程中的内存区域 且整个区域可以访问 或者失败VirtualAllocEx 在指定进程的虚拟地址空间中保留、提交或更改内存区域的状态。lstrcatA 开始追加这样一看真像dll 进程注入 后面还有一些 kernel32.dll Lab12-01.dll psapi.dll explorer.exe可能是恶意代码注入的目标
这个恶意代码样本是如何工作的?哪个进程会被注入? ?丢 IDA 分析跟进第一步 查查第一个函数下的调用 看到是这边会调用 psapi.dll 模块 获取进程信息 并且检索dll导出函数以及变量地址下面的一些系统API 函数基本是 ...
恶意代码分析11-2
一.前置做一些字符的收集 strings.exe .\Lab11-02.dll这边也可以知道 dll利用 AppInit_DLLs 实现挂钩安装并且关联注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windowsstrings.exe .\Lab11-02.ini 看样子是个加密值 或者是 钥匙
1.这个恶意的DLL 导出了什么静态分析 第一个函数 GetModuleFileNameA 检索模块并且加载当前进程看到调用偏移量是 Installer +76往下跟进入 到了installer() 函数里 知识点 是 rundll32.exe 模块 来启动 此dll也就是说这边导出的是 installer 启动命令是 rundll32.exe Lab11-02.dll,installer使用静态分析就不做动调
2.使用rundll32.exe 安装这个恶意代码后,发生了什么?恶意代码的驻留?在刚才跟进 偏移位是+76 更进函数是 CopyFileA() 函数中的属性安装后会把文件拷贝在系统目录运行后根据上面注册表的自信会是SOF ...
NewStarCTF WP WEEK4 _ reverse
茶这题目主要是思路是字节码 MV 我们开始动调 主要目标进入 MV 做对齐 ,TEA对其关键代码进行分析跟进VM分析 一共是case 5次 长度为40 opencode 静态也找不到需要的 我们进行动调 在vm出断点 f9 f7 进入 call 跳转 进入 vm public更近他们 var_10 栈 列表 一步一步对其我们需要从下往上写 堆栈的原理的 先入栈的会在栈底
12345678910111213141516171819202122232425262728 0xF1[0,0,2] 0xF1[1,1,2] 0xF1[3,0,0] 0xF1[2,0,0] 0xF2[3,0x9e3779b9,0] 0xF1[4,1,1] 0xF5[4,5 ...
恶意代码分析11-1
PE识别 x32位的文件 先找main 函数在说 winmain main maindll 这些的需要的 恶意代码分析主要还是经验以及知识点 Windows平台的了解 还有对PE文件的了解
Q1.这个恶意代码向磁盘释放了什么?开始分析 先载了 CFF Explorer 32位 继续往下 先查询段头部地址 存在PE 头和 MZ 头地址 继续看看 好家伙两个文件 (一开始我做题目犯了除 CTF做多了一般是直接丢IDA )继续把下面包含的文件导出先在得到一个7K的文件现在开用ida分析exeida开始更近main 解释一下这两个函数GetModuleHandleA()检索模块创建进程 也就说这里会有东西被调用GetModuleFileNameA() 加载进程完 查找另一个 模块文件加载 (dll 7k???)跟入第一个函数 sub_401080 4个函数 还有文件操作查看fopen 函数的所打开的文件是谁FindResourceA() 确定指定模块中具有指定类型和名称的资源的位置 进路函数下面的区块 lpNAMELoadResource() 加载模块中的ID 和字符串LockRe ...
NewStarCTF WP WEEK2 _ reverse
androgenshin
元神启动主函数 找找一个 rc 一个base64
解rc4
12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;signed main(){ int base64_table[] = {125, 239, 101, 151, 77, 163, 163, 110, 58, 230, 186, 206, 84, 84, 189, 193, 30, 63, 104, 178, 130, 211, 164, 94, 75, 16, 32, 33, 193, 160, 120, 47, 30, 127, 157, 66, 163, 181, 177, 47, 0, 236, 106, 107, 144, 231, 111, 16, 36, 34, 91, 9, 188, 81, 5, 241, 235, 3, 54, 150, 40, 119, 202, 150}; string key = ...
NewStarCTF WP WEEK3 _ reverse
花ida 丢进去 脱花 跟下 RC4判断一下 密钥 一串wowo…..
12345678910111213141516171819202122232425262728293031323334#include<bits/stdc++.h>using namespace std;nsigned mian(){ int base64_table[] = {0xF4, 0x87, 0xD4, 0xFA, 0x61, 0xA6, 0x71, 0x12, 0x75, 0x09, 0xFE, 0xD8, 0xE4, 0x38, 0x97, 0x51, 0xA8, 0xDF, 0x85, 0x65, 0xC2, 0xB2, 0x15, 0xEF, 0x1F, 0xEC, 0x69, 0xDD, 0x6E, 0xE9, 0xCF, 0x07, 0xAE, 0xC8, 0x17, 0xF0, 0x65, 0x72, 0xE6, 0x73, 0xA4, 0x0C, 0x87, 0x64, 0x9E, 0x9E, 0x71, 0x8C, 0x7F, 0 ...
恶意代码分析11-3
恶意代码分析11 -3
使用基础静态分析过程,你可以发现什么有趣的线索?
leb11-03.exe 如何安装leb11-03.dll 使其长期驻留?
恶意代码感染了Windows的那个文件? led11-03.dll做了什么?这个恶意代码将收集的信息存放在何处?
当运行这个代码的时,发生了什么?
1.使用基础静态分析过程,你可以发现什么有趣的线索?对exe进行字符串的收集cisvc.exe 内存检测会被修改 inet_epar32.dll 出现的两次让其觉的是复制该文件dll字符串分析看样子有对键盘记录的函数 调用user32.dll的函数不在少数 还有记录时间微软:getAsyncKeyState 函数 (winuser.h) - Win32 apps | Microsoft LearnC:\WINDOWS\System32\inet_epar32.dllC:\WINDOWS\System32%scisvc.exenet start cisvc 启动服务命令
2.leb11-03.exe 如何安装leb11-03.dll 使其长期驻留?主函数第一步就是复制文件进行改名目录下存在此文 ...