如果不能把恶意代码运行起来,那么动态分析基础技术没有什么用。

Windows版本中包含rundll32.exe程序,提供了一个运行DLL的平台。

rundll32.exe Dllname,Export arguments

Export值必须是一个DLL文件导出函数表中的函数名或者序号。

PEID可以看导出函数表。

图1

Install就像是启动rip.dll的一个入口,所以可以用rundll32启动该恶意代码

恶意的DLL在DLLMain(称作DLL函数入口点)执行它们的代码,因为无论DLL什么时候加载,DLLMain函数总会执行,这样就能通过rundll32.exe加载DLL。

方法1:

C:\>rundll32.exe rip.dll,Install

方法2:

恶意代码也可以通过序号来导出函数,也就是说,导出函数只有一个序号,而没有函数名。

在前面加#号字符即可实现。

C:\>rundll32.exe xyzzy.dll,#5

方法3:

从IMAGE_FILE_HEADER的特征域里擦除IMAGE_FILE_DLL(0x2000)标记。这样的改变不会执行任何输入函数,但它会调用DLLMain方法,而且有可能造成恶意代码意想不到的崩溃或者终止。这样做的目的是能使DLL执行恶意部分

PE结构位置:

struct IMAGE_NT_HEADERS NtHeader		E8h	F8h	Fg: Bg:0xFFE0FF
struct IMAGE_FILE_HEADER FileHeader ECh 14h Fg: Bg:0xFFE0FF
struct FILE_CHARACTERISTICS Characteristics FEh 2h Fg: Bg:0xFFE0FF WORD
WORD IMAGE_FILE_DLL : 1 1 FEh 2h Fg: Bg:0xFFE0FF 0x2000 File is a DLL

有参数的情况

DLL形态的恶意代码也可能需要被安装成一个服务。比如ipr32x.dll中导出了InstallService函数。

C:\>rundll32.exe ipr32x.dll,InstallService ServiceName
C:\>net start ServiceName

ServiceName参数必须提供给恶意代码,让它能被安装并运行起来。而在Windows系统中启动指定的服务,可以使用Net Start命令。

动态调试单一的服务

新建快捷方式-然后拖进OD就可以正常单步调试了。

恶意代码分析实战-启动一个恶意的DLL的更多相关文章

  1. 恶意代码分析实战五:OllyDebug动态结合

    目录 恶意代码分析实战五:OllyDebug动态结合 OllyDebug界面介绍 OllyDebug载入程序方法 OllyDebug地址跳转 OllyDebug下断点 OllyDebug单步执行 Ol ...

  2. 恶意代码分析实战四:IDA Pro神器的使用

    目录 恶意代码分析实战四:IDA Pro神器的使用 实验: 题目1:利用IDA Pro分析dll的入口点并显示地址 空格切换文本视图: 带地址显示图形界面 题目2:IDA Pro导入表窗口 题目3:交 ...

  3. 恶意代码分析实战-PE资源提取

    场景 1.提取恶意代码中的资源部分内容 思路 存在Loadresource函数的时候说明有一部分内容在资源里. 技术点 Lab1-4 ResourceHacker打开保存资源,载入IDA查看

  4. 恶意代码分析实战-x86反汇编速成班

    x86反汇编速成 x86体系结构 3种硬件构成: 中央处理器:负责执行代码 内存(RAM):负责存储所有的数据和代码 输入/输出系统(I/O):为硬盘.键盘.显示器等设备提供接口 内存 一个程序的内存 ...

  5. 恶意代码分析实战-确认EXE什么时候编译的

    场景 确认开源的后门在中毒机器上是什么版本,具有什么功能. 思路 1.查看样本PE里的编译时间 2.对照开源后门里组件的编译时间 技术点 查看NT头-TimeDateStamp struct IMAG ...

  6. 20155331《网络对抗技术》Exp4:恶意代码分析

    20155331<网络对抗技术>Exp4:恶意代码分析 实验过程 计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat ...

  7. Exp4 恶意代码分析 20154320 李超

    恶意代码 概述 恶意代码是指故意编制或设置的.对网络或系统会产生威胁或潜在威胁的计算机代码.最常见的恶意代码有计算机病毒(简称病毒).特洛伊木马(简称木马).计算机蠕虫(简称蠕虫).后门.逻辑炸弹等. ...

  8. 20165223《网络对抗技术》Exp4 恶意代码分析

    目录 -- 恶意代码分析 恶意代码分析说明 实验任务目标 实验内容概述 schtasks命令使用 实验内容 系统运行监控 恶意软件分析 静态分析 virscan分析和VirusTotal分析 PEiD ...

  9. Exp4 恶意代码分析

    一.原理与实践说明 1. 实践目标 1.1 监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysin ...

随机推荐

  1. length、length()、size()区别 List与String相互转换

      字符串 数组 List对象 定义 String str = ""; String[] s = new String[5]; char[] s; List<String&g ...

  2. day9 函数练习题

    写代码,接受n个数字,求这些数字的和 def sum_func(*args): total = 0 for i in args: total+=i return total print(sum_fun ...

  3. java常见面试题及答案

    java常见面试题及答案 来源 https://blog.csdn.net/hsk256/article/details/49052293 来源 https://blog.csdn.net/hsk25 ...

  4. MT【27】对数方程组求范围

    解答:3 评论:此类题目通性通法为换元后化归为线性规划问题.当然不等式凑配也是常见技巧,只是容易范围扩大或者缩小.

  5. 让一个继承unittest.TestCase的类下的setUp和tearDown只执行一次

    知道unittest单元测试框架的朋友应该都知道, 执行继承了unittest.TestCase的类下每个test开头的方法(就是用例)时,都会执行setUp和tearDown,如下面的例子所示: i ...

  6. 设计模式 (二)——观察者模式(Observer,行为型)

    1.概述 使用设计模式可以提高代码的可复用性.可扩充性和可维护性.观察者模式(Observer Pattern)属于行为型模式,在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都 ...

  7. Memcached在Windows下的配置和使用

    Memcached学习笔记---- 安装和配置 首先,下载Memcached相关文件. 打开控制台,进入Memcached主程序目录,输入: memcached.exe -d install //安装 ...

  8. [IOI2018] seats 排座位

    [IOI2018] seats 排座位 IOI2018题解 压缩状态思想很不错的 每次把原来的贡献减掉,新来的再加上 最多涉及10个点 注意: 1.去重 2.下标从0开始 3.线段树初始的最小值个数都 ...

  9. [NOI2009]二叉查找树

    题目大意: 给定一棵严格的treap,父亲节点的优先级必然小于儿子节点的.权值按照二叉树的定义,左儿子小于父亲小于右儿子. 深度从1开始定义,每个点除优先级.数值之外,还有一个访问频度. 访问频度所产 ...

  10. array扩展运算符

    扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3 console ...