逆向分析
文章平均质量分 86
努力学习的大康
这个作者很懒,什么都没留下…
展开
-
phpjiami加密原理详解及解密
使用Php-Parser对phpjiami加密原理进行详细分析,以及如何解密。原创 2022-11-13 03:03:03 · 2266 阅读 · 2 评论 -
yara规则学习与使用
最近需要对分析的病毒提供一定的检测能力。看了一圈发现yara规则比较满足我的需求。本文包括: 1. yara规则的简单介绍 2. yara规则的编写(字符串定义和条件定义)(基本就是官网翻译了) 3. 如何在python语言中使用yara(简单使用)...原创 2022-06-20 22:53:35 · 6399 阅读 · 1 评论 -
二进制静态分析---库函数识别
这里写自定义目录标题一、问题二、FLIRT(ida自带)三、lscan(没成功)四、Rizzo(需要有对比文件)五、finger(好用)六、lumina(ida>7.2,有一定效果)总结一、问题在静态编译的程序中会包含很多库函数,这些库函数不是我们分析代码的关键,但是在分析的时候可能会分析到库函数中降低我们分析的效率。如果能够正确高效的识别这些库函数,就能加快我们分析的效率。现有的方法可以分为三大类(我自己分的不一定准确)通过对比签名文件(sig)的机器码序列来识别函数。如FLIRT、lsc原创 2022-04-24 19:17:18 · 4645 阅读 · 0 评论 -
2021绿城杯 RE WP
逆向(100分题)变异RC4,关键点是密钥盒S的生成过程被魔改了。RC4原理参考之前的博客基本流程1.初始循环填充key,key=“tallmewhy”2.计算密钥盒S,但是不是标准的RC4算法。可以通过dump的方法将密钥和提取3.ebp+ecx+var_534中是密文由于不想看魔改的S盒生成算法,所以在S盒生成完成的地方下断点,dump S盒填充就可以了。exp#include<stdio.h>#include<string.h>struct rc4_原创 2021-09-29 22:31:18 · 3307 阅读 · 0 评论 -
2021长城杯 RE
Just_cmp-re猜测就是在init_array的地方修改了strcmpenc = [0x00,0x00,0x00,0x00,0x00,0x37,0x07,0x0A,0x37,0x0A,0x08,0x0A,0x06,0x06,0x0B,0x38,0x07,0x0A,0x3B,0x08,0x38,0x0E,0x0F,0x3B,0x3A,0x0A,0x0B,0x06,0x09,0x07,0x3B,0x37,0x0D,0x0F,0x07,0x38,0x0F,0x00,0x00,0x00,0x00,0原创 2021-09-20 16:27:24 · 886 阅读 · 0 评论 -
2021 羊城杯 EasyVM
正好学习一下vm的题目怎么分析1.简单分析主函数1.初始化标准输入输出和错误2.设置VMcontext3.xxtea自解密dispatch代码4.进入dispatch执行2.解决smc问题在自解密结束位置下断点,并将内容dump下来.dump脚本start = 0x80487A8for idx in range(0x1000): if idx%16 == 0: print("") print(hex(get_wide_byte(start+idx)),end=',原创 2021-09-14 13:57:16 · 791 阅读 · 0 评论 -
2021羊城杯CTF wp
1.签到比较坑的点是《一起来看***》是17,猜了很久才猜出来28-08-30-07-04-20-02-17-23-01-12-19得到flag SangFor{d93b7da38d89c19f481e710ef1b3558b}2.BabyRop一万年没做pwn了,为了骗点分还是看了一下。fgets存在栈溢出没有cannary保护存在system函数(也可以用func1),存在/cin/sh字符串所以可以直接getshell。坑点是不能使用/cin/sh和/sh要执行system(“sh原创 2021-09-13 10:18:23 · 2954 阅读 · 3 评论 -
office病毒分析从0到1
一、office文件格式office文件格式根据版本可以分为Office2007之前的版本和Office2007之后的版本。Office2007之前的版本为OLE复合格式:doc,dot,xls,xlt,pot,pptOffice2007之后的版本为OpenXML格式:docx,docm,dotx,xlsx,xlsm,xltx,potx1.OLE复合格式(Object Linking and Embedding Data Structures)复合文档不仅包含文本,而且包括图形、电子数据表格、声音原创 2021-06-28 13:48:00 · 2147 阅读 · 1 评论 -
逆向分析基础 --- 花指令实现及清除
一、基本概念花指令:目的是干扰ida和od等软件对程序的静态分析。使这些软件无法正常反汇编出原始代码。常用的两类反汇编算法:1.线性扫描算法:逐行反汇编(无法将数据和内容进行区分)2.递归行进算法:按照代码可能的执行顺序进行反汇编程序。简单的花指令 0xe8是跳转指令,可以对线性扫描算法进行干扰,但是递归扫描算法可以正常分析。两个跳转一个指向无效数据,一个指向正常数据来干扰递归扫描算法。二、花指令实现这里的实验基础代码是参考安全客上一个师傅代码进行的//源码#include<s原创 2021-06-15 17:33:08 · 12453 阅读 · 4 评论 -
恶意代码分析实战 --- 第十二章 隐藏的恶意代码启动
一、常用的隐藏技术启动器进程注入进程替换Hook注入DetoursAPC注入二、Lab12-11.行为分析执行之后的效果是每隔一段时间会弹窗。查看process momitor。可以发现psapi.dll被createFileMapping进内存,可能是修改了CreateFileMapping.2.Lab12-1.exe主要流程分析1.初始化:通过LoadLibrary和GetProcAddress来获得EnumProcessModules、GetModuleBaseNam原创 2021-06-09 16:33:44 · 652 阅读 · 0 评论 -
恶意代码分析实战 --- 第十一章 恶意代码行为
一、 Lab11-01行为分析在当前目录释放文件msgina32.dll并且修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL为释放出来的msgina32.dll,对登录进行劫持。ida pro7.5很多unicode字符串无法识别出来。这里用了SysinternalsSuite中的strings工具来搜索字符串。静态分析对Wlx开头的所有函数进行分析。大部分的函数如下:原创 2021-06-06 18:36:23 · 1288 阅读 · 1 评论 -
初入门径 --- 护网钓鱼样本分析
最近半个月都在学《恶意代码分析实战》,想拿真实的恶意软件进行分析一下。正好朋友发了一个过来。(应该是护网的钓鱼文件)0x01 文件分析总共包括三个文件:2021年机关员工(子女)名单.exe、name1.jpg、name2.jpg2021年机关员工(子女)名单.exe:程序是golang编译的,分析起来有点困难。所以没有进行分析,只是看了一下会有什么行为。name1.jpg为exename2.jpg为dll导出了InitBugReport函数,且该函数存在异或解密shellcode的行为。0原创 2021-06-02 20:12:13 · 630 阅读 · 0 评论 -
恶意代码分析实战 --- 第十章 使用Windbg调试内核
一、安装内核调试1.配置虚拟机编辑C:\boot.ini ,该文件为隐藏文件,将文件按下面方式进行修改/debug表示开启内核调试/debugport=COM1表示使用哪个端口来连接调试系统与被调试系统/baudrate=115200表示指定串口数据传输速率。[boot loader]timeout=30default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operating systems]multi(0)disk(0)rdisk(原创 2021-05-31 21:43:47 · 998 阅读 · 0 评论 -
恶意代码分析实战 --- 第九章 OllyDbg
Lab 9-1查看程序的导入了Service相关、注册表相关、文件操作相关、网络连接相关的API,还有ShellExecute函数可能是存在后门的命令执行。字符串主要是cmd.exe和一个注册表SOFTWARE\Microsoft \XPS比较可疑主流程分析1.如果运行程序是否有参数。无参数查询注册表”SOFTWARE\Microsoft \XPS\Configure“.查询失败删除文件2,查看最后一个参数是否为abcd,再根据参数-in -re -c -cc执行相应命令打开注册表LS原创 2021-05-24 13:32:19 · 978 阅读 · 0 评论 -
恶意代码分析实战 --- 第七章分析恶意windows程序
Lab7-1程序分析查看导入表,存在服务相关API,静态分析需要关注服务相关代码。通过存在互斥体的创建。最后两个WININET的api会打开URL。主函数执行 StartServiceCtrlDispatcher设置"Malservice"对应的回调函数相关APIBOOL WINAPI StartServiceCtrlDispatcher( _In_ const SERVICE_TABLE_ENTRY * lpServiceTable);结构体:服务名|回调函数typedef st原创 2021-05-21 23:44:02 · 740 阅读 · 1 评论 -
恶意代码分析实战 --- 第三章 动态分析基础技术
Lab 3-11.找出恶意代码的导入函数与字符串列表导入函数只有一个ExitProcess,可能被加壳了。字符串存在两个注册表,1个url,还有1个PE文件名2.这个恶意代码在主机上的感染迹象特征是什么?3.这个恶意代码是否存在一些有用的网络特征码?如果存在,它们是什么?提前启动process monitor(设置过滤WriteFile、RegSetValue)、process expore、Fakenet(用于监控网络)写了一个文件到C:\WINDOWS\System32\vmx32to6原创 2021-05-16 20:44:41 · 802 阅读 · 0 评论 -
恶意代码分析实战 --- 第一章 静态分析基础技术
记录一下恶意代码分析实战的课后习题。Lab1-11.将文件上传至http://www.virustotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?能够看到很多杀软都报毒了,但是好像看不出报的是什么类型的病毒。2.这些文件是什么时候编译的?Lab01-01.exe创建时间:2010-12-20/00:16:19Lab01-01.dll创建时间:2010-12-20/00:16:38应该是同时创建的.4.是否有导入函数显示出这个恶意代码是做什么的?如果是,是哪些导入原创 2021-05-15 22:24:58 · 732 阅读 · 0 评论 -
2021红帽杯RE ezRev和file_store题解
比赛的时候没做出来,而且坑点也挺多的,赛后复现了一下0x01 ezRev比赛的时候更新了题目,原本题目没有字符串提示,分析起来难度较大。题目难点是设置了很多比较坑的比较点需要patch绕过。1.流程分析1.输入一个16字节的flag(需要patch长度比较)2.rand()生成a和b3.比较a的b次方和b的a次方是否相等,且a>b。应该只有一个解就是a=4,b=2。(需要patch rand返回值为4,2)4.计算xtea的key,可以将sleep nop掉,因为前面步骤2,3,原创 2021-05-12 16:14:14 · 934 阅读 · 4 评论 -
逆向分析中的密码学---RSA
0x01 简介RSA算法是公钥加密算法,即可用于数据加密也可以用于数字签名。RSA基于一个简单的数论事实,两个大素数相乘十分容易,将其进行因式分解确实困难的。这篇文章不涉及RSA算法的原理,只涉及RSA算法的流程0x02 算法流程流程时挺简单的选取两个大素数p和q,为了获得最高安全性,设两数长度一样计算n=pq,n称为模计算欧拉函数:φ\varphiφ(n)=(p-1)(q-1)选取加密密钥e,其与φ\varphiφ(n)互素。如果选择的e值合适,RSA加解密的速度会加快。e的常用值为3、1原创 2021-04-21 23:32:10 · 537 阅读 · 0 评论 -
逆向分析中的密码学---AES
https://github.com/matt-wu/AES原创 2021-04-20 23:59:06 · 2186 阅读 · 0 评论 -
逆向分析中的密码学---tea
0x01 简介TEA全称Tiny Encrypt Algorithm。在CTF逆向分析中经常会出现Tea或者魔改了DELTA的TEA算法。0x02 算法原理明文长度分组为64位(8字节),密钥长度为128位(16字节),明文和密钥进入32轮循环,得到最后的64位密文。其中magic number DELTA是由黄金分割点得到。算法比较简单源码如下#include<stdio.h>#define DELTA 0x9e3779b9void tea_encrypt(unsigned i原创 2021-04-13 14:23:16 · 3801 阅读 · 0 评论 -
逆向分析中的密码学---RC4
0x01 简介RC4是对称加密算法,通过密钥key和S盒生成密钥流,明文逐字节异或S盒,同时S盒也会发生改变。所以加密与解密使用了相同的函数和密钥K。RC4加密的强度主要来源于密钥的安全性,如果密钥泄露,则能直接解密出明文。0x02 RC4算法分析S盒初始化第一个256循环:初始化为0-255第二个256循环:根据密钥K,交换密钥盒Sfor i=0 to 255 do S[i]=ij=0for i=0 to 255 do j = (j+S[i] + key[i mod keylength原创 2021-04-12 23:46:55 · 2297 阅读 · 0 评论 -
逆向分析中的密码学---SHA1
0x01 简介SHA-1是安全哈希函数,允许输入最大2^64-1位,产生160位(20字节)的哈希值。0x02算法简介初始化过程和md5一样先进行数据填充再附加64位的长度信息1.数据填充对消息进行数据填充,使消息的长度对512取模得448,设消息长度为X,即满足X mod 512=448。根据此公式得出需要填充的数据长度。填充方法:在消息后面进行填充,填充第一位为1,其余为0。2、添加消息长度在第一步结果之后再填充上原消息的长度,可用来进行的存储长度为64位。如果消息长度大于2^64,则只原创 2021-04-12 21:16:47 · 1684 阅读 · 0 评论 -
逆向分析中的密码学---MD5
0x01 简介MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value)。可以用于确保信息传输完整一致。数据库中密码的保存(md5(pass,salt)方式)。0x02 算法流程1.数据填充对消息进行数据填充,使消息的长度对512取模得448,设消息长度为X,即满足X mod 512=448。根据此公式得出需要填充的数据长度。填充方法:在消息后面进行填充,填充第一位为1,其余原创 2021-04-11 19:28:24 · 1631 阅读 · 0 评论