吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6513|回复: 22
收起左侧

[PC样本分析] 恶意代码分析

[复制链接]
pizzabamboo 发表于 2022-6-7 22:08
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 pizzabamboo 于 2022-6-9 12:42 编辑

实验二 动态分析实践
【实验目的和要求】
熟悉OllyDbgIDA Pro的使用,用其分析恶意文件,分析DLL文件的导入过程;分析DLL提供的函数的具体功能;熟悉API函数功能及其涉及到的参数理解;分析netschedulejobadd、at_info。

【实验工具】
PeEdtior、OllyDbg、IDA Pro等

【实验步骤】
1、样本导入了哪些 DLL?
一共六个:KERNEL32.dll;NETAPI32.dll;DLL1.dl1;DLL2.dll;DLL3.dll;user32.dll
直接查看到四个:
image.png

往下翻,看到DLL3.dll,带着个LoadLibraryA。于是接着找别的LoadLibraryA,能够看到还有个user32.dll

image.png

2、DLL1.dll、DLL2.dll、 DLL3.dll要求的基地址分被是多少?
都是10000000
image.png

3、DLL3.dll导入方式和前面2个DLL有何不同?
DLL3.dll是显式链接,执行过程中实时加载,执行完后卸载。前面两个是隐式链接,一开始就加载到了内存中。

4、当使用OllyDbg调试样本时,为DLL1.dll、DLL2.dll、 DLL3.dll 分配的基地址是什么?是否符合第2步DLL声明的基地址相同?为什么出现这种情况?
(OD查看-内存)
image.png
00590000,005C0000,10000000;不同;进行了基地址重定位,因为他们预设的基地址都是10000000.

5、样本调用DLL1.dll中的一个导入函数,该函数名称是什么?
KERNEL32.dll
image.png

6、分析该函数功能。(提示:分析该导入函数用到的参数及该函数调用的其他函数,如分析GetCurrentProcessId函数功能。)DLL1打印的数据是什么?
GetCurrentProcessId作用:获取当前进程一个唯一的标识符打印的数据:47600(pid)里面的指令,以及对应语句执行的寄存器状态:
image.png

6.1样本调用了WriteFile函数,分析WriteFile函数功能及其参数。
image.png

WriteFile函数功能:从文件指针指向的位置开始将数据写入到一个文件中, 如果文件打开方式没有指明FILE_FLAG_OVERLAPPED的话,当程序调用成功时,它将实际写入文件的字节数保存到lpNumberOfBytesWriten指明的地址空间中参数:HANDLE  hFile,//文件句柄LPCVOID lpBuffer,//数据缓存区指针DWORD   nNumberOfBytesToWrite,//你要写的字节数LPDWORD lpNumberOfBytesWritten,//用于保存实际写入字节数的存储区域的指针LPOVERLAPPED lpOverlapped//OVERLAPPED结构体指针

6.2当样本调用WriteFile函数时,它写入的文件名是什么,写入该文件的内容是什么?(提示:结合样本样本导入的DLL2.dll进行分析;找到某个地址,分析不同函数对其引用;IDA中,选中某个地址,然后快捷键X键,可以显示引用于该地址的函数地址)DLL2打印的数据是什么?
要想知道WriteFile函数写入的文件名是什么,只要找到参数里的文件句柄就好。可以看到,这里的ecx存着hFile,观察前面的语句能够知道,这里的ecx肯定和DLL2ReturnJ的返回值有关。
image.png

于是我们打开DLL2.dll,找到DLL2ReturnJ函数
image.png

不难发现,这里的dword_1000B078就是返回值,我们找找看这个值
image.png

跟进第一个就能看到,CreateFileA这个函数创建了个temp.txt文件,即CreateFileA函数写入的文件名为temp.txt。如果CreateFileA成功的话,会返回一个打开的指定文件的句柄 ,这里是存在eax里面的,所以dword_1000B078就是存的temp.txt这个文件的句柄。
image.png

OD调试运行一下,打开创建的temp.txt文件,就能看到写入的内容了:
image.png

我们在IDA里面找到DLL2Print这个函数,能够发现这里压的两个参数eax和"DLL 2 mystery data %d\n"。
image.png

于是在OD里面调试一下,看看eax是什么
image.png
image.png

16进制里100就是256。所以DLL2Print打印的就是eax的值,也就是文件的句柄。

7.1当样本使用NetScheduleJobAdd创建一个job时,从哪里获取第二个参数的数据?从这里获取什么信息?
找到NetScheduleJobAdd这个函数,我们能看到第二个参数是Buffer,被存放在ecx里面,是指向AT_INFO结构的指针。这里是将[ebp+Buffer]的值付给了ecx,不过我们并不知道这个值是多少,于是找到上面的DLL3GetStructure函数,对DLL3进行调试。
image.png

找到DLL3GetStructure,发现他用eax存放返回值stru_1000B0A0,于是找一下stru_1000B0A0的值。
image.png

找到stru_1000B0A0后,添加结构体AT_INFO,然后点击Edit下的Struct var,再看的话能够识别出该结构体。
S9M6FS0M59SLWW8S9)LB6%J.png

所以NetScheduleJobAdd函数的第二个参数来自DLL3中的DLL3GetStructure函数。

7.2 DLL3打印的数据是什么?
找到DLL3Print函数,发现有两个参数,我们找一下offset WideCharStr
image.png
image.png

MultiByteToWideChar函数将字符串映射到 UTF-16(宽字符)字符串,10001004处将ping www.malwareanalysisbook.com在内存中的偏移地址保存,然后利用MultiByteToWideChar函数将刚才的偏移地址进行字符串转换,返回值既是WideCharStr。
image.png

DLL3打印的是ping www.malwareanalysisbook.com在内存中的地址。

【实验小结】 扩展知识:
https://docs.microsoft.com/en-us/windows/win32/api/lmat/nf-lmat-netschedulejobadd
https://docs.microsoft.com/en-us/windows/win32/api/lmat/ns-lmat-at_info

软件安全实验2.zip

2.76 MB, 下载次数: 9, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
X2Y520 + 1 + 1 热心回复!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhyerh + 1 + 1 谢谢@Thanks!
杨辣子 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| pizzabamboo 发表于 2022-6-8 18:52
Hmily 发表于 2022-6-8 16:02
复制过来的格式太乱了,给你正文编辑了一下,另外你附件样本还是没有加压缩密码,必须加压缩密码,不然可能 ...

好的H大我搁那编辑半天都没整好,解压密码搁那设置了半天也弄不上,感谢感谢

点评

你本地rar压缩设置压缩密码啊,不是论坛设置啊,赶紧加上。  详情 回复 发表于 2022-6-9 11:20
Hmily 发表于 2022-6-9 11:20
pizzabamboo 发表于 2022-6-8 18:52
好的H大我搁那编辑半天都没整好,解压密码搁那设置了半天也弄不上,感谢感谢

你本地rar压缩设置压缩密码啊,不是论坛设置啊,赶紧加上。
Hmily 发表于 2022-6-8 16:02
复制过来的格式太乱了,给你正文编辑了一下,另外你附件样本还是没有加压缩密码,必须加压缩密码,不然可能会导致论坛被杀软误报。
bx4188 发表于 2022-6-8 16:28
大佬牛批,6666666
咬字分开念 发表于 2022-6-8 20:24
push 的是 ebp
怎么就返回了 eax呢
 楼主| pizzabamboo 发表于 2022-6-8 20:29
咬字分开念 发表于 2022-6-8 20:24
push 的是 ebp
怎么就返回了 eax呢

这个我不知道你说的push ebp跟这玩意有啥关联,不过我接触到的函数返回值基本都放在eax里的
iloveasdl 发表于 2022-6-9 08:30
感觉分享!
cdstone 发表于 2022-6-9 09:20
虽然看不懂,但是还是支持楼主!
 楼主| pizzabamboo 发表于 2022-6-9 12:18
Hmily 发表于 2022-6-9 11:20
你本地rar压缩设置压缩密码啊,不是论坛设置啊,赶紧加上。

我这里一直显示服务器返回错误,上传不了耶

点评

没密码都传上去了,咋加了密码还不能穿了呢?  详情 回复 发表于 2022-6-9 12:22
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表