逆向
文章平均质量分 72
wangtiankuo
恶意代码分析学习中...待续
展开
-
逆向工程权威指南学习笔记
声明:本文整理自《逆向工程权威指南(上册)》非常乱,不行整理了。第三章 RET 将控制权交给调用程序(将控制权交给操作系统)编译器在字符串常量的尾部添加了00H,原因是为这个字符串常量添加结束标志(即数值为0的单个字节)push offset $SG3803通过push,把字符串指针推送入栈。call _printfprintf函数结束之后,程序的控制流返回到mai原创 2017-07-05 20:36:20 · 2988 阅读 · 0 评论 -
逆向工程核心原理之DLL卸载
DLL卸载winxp测试成功(需要C:\windows\system32\msvcr100.dll)// EjectDll.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<Windows.h>#include<TlHelp32.h>#i...原创 2018-03-21 15:59:07 · 349 阅读 · 0 评论 -
逆向工程核心原理之调试UPX压缩的notepad程序
notepad_upx第一个节区的RawDataSize为0,即第一个节区在磁盘文件中是不存在的,但是其Virtual Size值为0xF000,意味着,UPX压缩后的PE文件在运行瞬间将压缩的代码解压到(内存中的)第一个节区。 notepad_upx的EP,第一个节区的起始地址0x01001000,存入edi,第二个节区的起始地址0x01010000,存入esi。 把esi中...原创 2018-04-08 18:31:13 · 479 阅读 · 1 评论 -
逆向工程核心原理之UPack PE文件头
0x0 两个文件对比正常的notepad.exe使用Upack压缩后的notepad.exe,可以看到无法正常读取PE文件头。 0x1 重叠文件头IMAGE_NT_HEADER的起始位置是可变的 0x2 修改SizeOfOptionalHeader的值SizeOfOptionalHeader的值被修改成了0x0148(原来定义的是32位是E0,64位是F0)。IMAGE_OPTION_HEA...原创 2018-07-02 10:06:18 · 783 阅读 · 0 评论 -
逆向工程核心原理之内嵌补丁
1.1 源程序分析第一次解密4010F5,与0x44异或解密401007,与0x7异或,一直到0x401086第二次解密4010F5,与0x11异或。将4010F5处的内容累加得到校验和,与0x31EB8DB0作比较,来判断代码/数据是否被改动过。下图是我们将要修改的字符串。分别位于0x40110A和0x401123 解密代码。1.2 内嵌补丁思路:解密结束后...原创 2018-07-02 10:18:49 · 498 阅读 · 0 评论 -
逆向工程核心原理之通过修改PE加载DLL
1.1 给TextView.exe添加myhack3.dll1.1.1 查看IDT是否有地方再加一个dll查看IDT,发现没有地方再添加一个dll了,需要移动IDT到更大的地方。在文件中找一个空白的区域,将IDT移动过去。.rdata区域,从0x8C60后就是NULL了。但是,填充着NULL不一定意味着该区域是空白可用区域,因此要确定该区域是否为空白可用区域。内存中节区起始...原创 2018-07-02 10:23:01 · 721 阅读 · 0 评论 -
PE文件结构
本文整理自《加密与解密》第10章 一、基本概念基地址:映射文件的起始地址被称为模块句柄,可以通过模块句柄访问内存中其他的数据结构。这个初始内存地址被称为基地址 GetModuleHandle函数返回可执行文件的基地址。 相对虚拟地址(RVA):RVA只是内存中的一个简单的相对于PE文件装入地址的偏移位置。实际的内存地址被称作虚拟地址(VA)VA=ImageBase+RVA 文件偏移地址:PE文件存...原创 2018-07-02 16:51:45 · 521 阅读 · 0 评论 -
使用OD调试服务
使用OD调试服务(服务程序为EXE文件)1. 先注册服务。在\HKEY_LOCAL_MACHINE\SYSTE\CurrentControlSet\services下新建项,在该项下面新建如下值,注意这些值的类型。 Description:服务的描述DisplayName:服务显示的名字ImagePath 服务程序所...原创 2018-07-03 15:38:56 · 4305 阅读 · 2 评论 -
修复不连续的导入表
1.前言 之前脱UPX壳都是用脱壳工具脱的,因此偷懒现在都没有仔细看ImportREC怎么用,最近分析一个很久之前的感染式病毒,遇到了UPX,使用工具脱壳失败,只能手动修复了。 壳是简单的UPX壳,知识需要手动修复导入表而已。2.修复过程 UPX在外壳入口点一大堆代码之后有一个jmp指令,直接跳到OEP,此样本在入口点和jmp之间会多次调用LoadLibrary和G...原创 2018-11-20 15:55:09 · 684 阅读 · 0 评论 -
逆向工程核心原理之DLL注入
DLL注入三种方法:使用LoadLibrary加载某个DLL时,该DLL中的DllMain函数就会被调用执行。1.创建远程线程(CreateRemoteThread)使用InjectDll.exe在notepad.exe中注入Myhack.dll(winxp提权后测试成功)InjectDll.exe源码// InjectDll.cpp : Defines the entry point for t...原创 2018-03-20 14:43:27 · 2052 阅读 · 2 评论 -
逆向工程核心原理 之 windows消息钩取
春节结束之后,感觉分析难一点的代码有点力不从新,尤其是模拟通信这一块。要是有的时候通信部分写的代码多一点,动态调试非常浪费时间,可是直接看伪代码我又看不懂,尤其是大片大片的没有名称的函数简直要我的命。之前分析成功一个远控木马,里面的通信是三层函数,靠着耐心算是分析出来了控制指令,也提取了特征,但是之后又遇到了一个样本,通信那一部分的函数超级多,看伪代码根本没头绪。我猜可能是我代码打的太少了,所以看...原创 2018-03-14 22:21:33 · 713 阅读 · 0 评论 -
恶意代码分析实战 课后题 Lab11-02
这个里面inline挂钩汇编代码操作没看明白,记一下,过两天重新写一个关于inline挂钩的。1.样本概况病毒名称为Lab11-02.dll,编写语言为Microsoft Visual C++ 6.0。1.1样本信息md5:BE4F4B9E88F2E1B1C38E0A0858EB3DD9sha1:79787427773DCCE211E8E65E1156BD60535494EC原创 2017-08-09 13:40:06 · 953 阅读 · 0 评论 -
恶意代码分析实战课后题 Lab11-03
1. 样本概况病毒名称为Lab11-03.exe。运行后有窗口,编写语言为Microsoft Visual C++ v6.0。1.1 样本信息病毒名称:Lab11-03.exemd5值:18EC5BECFA3991FB654E105BAFBD5A4Bsha1只:1F3F79EDBB6607B9640DD6A99856EE858AF9CB55病毒行为:使用net star原创 2017-08-10 17:05:36 · 1921 阅读 · 2 评论 -
《恶意代码分析实战》课后题 Lab11-01
1.行为分析资源节里面有一个可执行文件。对注册表的Winlogon进行了操作,创建了GinaDLL表项。创建了msgina32.dll文件,并向此文件中写入了长度为2560字节的数据。2.恶意代码分析2.1 对Lab11-01.exe进行分析根据main函数的伪代码,总结出程序的大致流程为,从资源节中导入文件,打开文件,对文件进行写操作-->获取当前文件的完整路径-->使用原创 2017-08-04 11:38:26 · 2010 阅读 · 1 评论 -
恶意代码分析实战 课后题 Lab12-01
1. 样本概况病毒名称Lab12-01.exe,运行后有一个命令行窗口,使用Microsoft Visio C++编写。1.1样本信息病毒名称:Lab12-01.exeMD5值: DAFBEA2A91F86BF5E52EFA3BAC3F1B16SHA1值:6A41735369934A212FC90DBD8C847C26270B3FBA病毒行为:每隔1min弹出窗口。1.原创 2017-08-11 14:52:11 · 1367 阅读 · 0 评论 -
恶意代码分析实战 Lab16-01
知识点:一、 使用windowsAPI来探测调试器是否存在反调试技术IsDebuggerPresentCheckRemoteDebuggerPresentNtQueryInformationProcessOutputDebugString二、 手动检测数据结构检测BeingDebugged属性fs:[30]指向PEB的基地址,PEB基地址偏移为2的地方是BeingD原创 2017-08-30 16:14:22 · 755 阅读 · 0 评论 -
TLS回调函数
本文转载自http://www.cnblogs.com/dliv3/p/6489629.html作者:dliveTLS (Thread Local Storage 线程局部存储 )回调函数常用于反调试。TLS回调函数的调用运行要先于EP代码执行,该特性使它可以作为一种反调试技术使用。TLS是各线程的独立的数据存储空间,使用TLS技术可在线程内部独立使用或修改进程的全转载 2017-08-30 16:19:30 · 1032 阅读 · 0 评论 -
恶意代码分析实战 Lab16-02
知识点:TLS回调TLS回调被用来在程序入口点执行之前运行代码。若可执行程序的PE头部包含一个.tls段,则可能此程序使用了反调试技术。分析报告1. 样本概况样本名称Lab16-02.exe,编译器为Microsoft Visual C++ v6.0。1.1样本信息样本名称:Lab16-02.exeMD5值: E88B0D6398970E74DE1DE457B971原创 2017-08-30 16:28:42 · 672 阅读 · 0 评论 -
恶意代码分析实战 Lab09-01(1)
分析报告:1. 样本概况病毒名称为Lab09-01.exe,使用Microsoft Visual C++ v6.0编译。1.1样本信息病毒名称:Lab09-01.exeMD5值: B94AF4A4D4AF6EAC81FC135ABDA1C40CSHA1值:D6356B2C6F8D29F8626062B5AEFB13B7FC744D54病毒行为:这一篇只写有参数下原创 2017-08-30 17:03:20 · 1911 阅读 · 0 评论 -
Windbg双机调试配置
源文章地址:http://blog.sina.com.cn/s/blog_62be61550100zaoc.html作者:芯灵空间我自己配置这个,什么都对了,就是C:\boot.ini中debugport的值写成了COM1,添加串行端口时,显示的是串行端口2,所以更改配置文件时,debugport的值应为COM2。如果debugport的值出现错误,则windbg会一直卡在wa转载 2017-08-28 10:53:02 · 889 阅读 · 0 评论 -
广告去弹窗
参考网址:https://bbs.pediy.com/thread-223105.htm软件下载网址:http://www.winrar.com.cn/download-55032scp.html本文前言部分摘自蓝色淡风的文章《一次去除广告弹窗的经历》。一、前言逆向一个程序,大致有3种方法。1. 自上而下分析方法从程序入口点(OEP)开始分析,模拟程序运行的整个原创 2017-12-19 11:30:03 · 3568 阅读 · 0 评论 -
如何查看被加密的宏代码
使用文本编辑器打开Word文档,找到DPB,修改DPX,保存。打开文档,无论报任何错误都选则“是”,继续打开文档。使用Alt+F11打开宏代码,选择Project->Project属性->保护,设置新的密码,保存并关闭文件。重新打开文件,使用自己设置的新密码便可以查看宏代码了。...原创 2019-04-25 17:22:55 · 4709 阅读 · 1 评论