汇编语言与逆向工程实验报告9 && 期中测验
逆向病毒
文件基础信息
属性 | 值 |
---|---|
crc32 | 8C1CE91C |
md5 | 73c297f059dd94671ca4e4c7dbfa6241 |
sha1 | f9d5e6003715fbe3ccdf78a8bef866ebc876c85f |
sha256 | dcb8531b0879d46949dd63b1ac094f5588c26867805d0795e244f4f9b8077ed1 |
sha512 | 48db5c5b73bd824bf2ec3b398aea73c6ec93f519efcdc1528d8a91f32dcdbb428f539e6cb031416c8a2f551ec089993dd71a8bdae6530dd82bd4293e759dd402 |
ssdeep | 1536:rUUBxlaaqYV/VnvjIM3S9r8DzeEn5gairxh:DMbYkgjn5Qrf |
type | PE32 executable (GUI) Intel 80386, for MS Windows |
主函数
1 | // WinMain 入口函数 |
sub_402920
1 | // 注册窗口类的函数 |
这个函数注册了一个窗口
下面再分析一下窗口过程函数
sub_4029B0
1 | // 处理窗口消息的回调函数 |
sub_401130
这个函数是用来创建隐藏目录并复制一些文件
1 | int sub_401130() |
该函数的主要作用是在指定目录下创建一个隐藏目录,并将一些文件复制到该目录中,然后比较当前模块的文件路径与指定路径,如果不同,则执行一些额外的操作。
下面再分析一下函数 sub_4026E0
sub_4026E0
这个函数是为了简单加密字符串
1 | _BYTE *__usercall sub_4026E0@<eax>(const char *a1@<eax>, char a2) |
接受一个字符串和一个字符作为参数,然后将字符串中的每个字符减去给定的字符(密钥),从而对字符串进行加密。加密后的字符串存储在动态分配的内存空间中,并返回指向该内存空间的指针。
实际上在这里秘钥是 1,所以加密后的字符串就是原始字符串的 ASCII 码每个字符减去 1。
下面是等效的 Python 代码:
1 | while 1: |
下面再分析一下函数 sub_401740
sub_401740
这个函数是为了获取计算机名、用户名
1 | int sub_401740() |
该函数的主要作用是获取计算机名、用户名,并将它们保存到全局变量中。
下面再分析一下函数 sub_402740
sub_402740
这个函数是为了复制文件
1 | int sub_402740() |
这个函数的作用是将一个文件的内容复制到另一个文件中,如果其中一个文件打开失败,则返回 -1。
下面再分析一下函数 sub_401570
sub_401570
1 | char *sub_401570() |
从注册表中获取 “ProductId” 值,然后将一些字符串连接起来,并返回结果。
再看看 sub_401360
sub_401360
这个函数是为了保活
1 | int sub_401360() |
操作 Windows 注册表,为了保活,设置了一些注册表键值。
- 标题: 汇编语言与逆向工程实验报告9 && 期中测验
- 作者: W1ndys
- 创建于 : 2024-04-27 13:31:25
- 更新于 : 2025-01-17 20:28:48
- 链接: https://blog.w1ndys.top/posts/b681040b.html
- 版权声明: 版权所有 © W1ndys,禁止转载。
评论