首页 > 其他分享 >Lab03-03

Lab03-03

时间:2023-04-10 22:59:11浏览次数:32  
标签:03 exe pContext Lab03 PE pi

目录

样本信息

字符串信息

导入表信息

资源信息

  • 通过浏览这个资源感觉这个资源里的内容是与0x41异或之后的内容

  • 还原之后是一个PE文件

样本分析

Lab03-03.exe分析

  • 从资源释放出另一个文件,解密后得到一个PE文件
  • 写入位置:C:\Windows\system32\svchost.exe
  • 以挂起的方式创建出svchost进程
  • 将svchost的文件映像去掉
  • 将资源中的内容分批拷贝到目标进程中
  • 使用SetThreadContext设置线程运行位置


资源分析

  • 使用SetWindowsHook挂钩一个键盘记录函数
  • 将按键记录写入到:practicalmalwareanalysis.log中
  • 该恶意代码能够记录:A-Z,a-z,0-9,SHIFT,CAPSLOCK,`,@,等字符

动态分析

  • 附加PID为2624的svchost.exe

查杀思路

  • 样本没有自启动。将它结束就行了。

总结

  • 使用调试器附加目标SVCHOST.exe进行调试记录器。

技巧

  • 目标进程中申请指定地址的内存
VirtualAllocEx(进程句柄,指定地址,大小,MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE)
  • 将一个PE展开后要想让其运行起来,需要将入口点正确填入
  • 将CONTEXT.eax赋值为目标的入ENTRYPOINT
  • 使用SetThreadContext函数实现这个功能。
int main()
{
    STARTUPINFO st = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION pi = {};
    if (CreateProcess(L"D:\\DLG.exe", 0, 0, 0, 0, CREATE_SUSPENDED, 0, 0, &st, &pi))
    {
        PCONTEXT pContext = (PCONTEXT)VirtualAlloc(0, sizeof(CONTEXT), MEM_COMMIT, PAGE_READWRITE);
        pContext->ContextFlags = CONTEXT_FULL;
        if (GetThreadContext(pi.hThread, pContext))
        {
            DWORD dwBase = 0;
            PDWORD pBase = (DWORD*)pContext->Ebx + 8; // pContext.Ebx中的值为PEB的地址
            DWORD dwRead = 0;
            ReadProcessMemory(pi.hProcess, pBase, &dwBase, 4, 0);
            typedef NTSYSAPI NTSTATUS(*NtUnmapViewOfSection)(HANDLE ProcessHandle, PVOID  BaseAddress);
            NtUnmapViewOfSection NUVOS = (NtUnmapViewOfSection)GetProcAddress(GetModuleHandle(L"ntdll.dll"), "NtUnmapViewOfSection");
            NUVOS(pi.hProcess, (PVOID)dwBase);
            // 接下来获取另一个PE文件的 sizeofImage imageBase
            // 修改目标进程的 PEB 中的IMAGEBASE
            // 计算新的 OEP 修改后的 PEImageBase + 另一个PE文件的 AddressOfEntryPoint
            // 将 pContext.eax 修改为新的 OEP
            // SetThreadContext
            // ResumeThread
            //
        }

    }
    return 0;
}
  • 键盘记录使用SetWindowsHook挂钩子
  • 获取前景窗口的API:GetForegroundWindow

标签:03,exe,pContext,Lab03,PE,pi
From: https://www.cnblogs.com/DisAsm/p/17304619.html

相关文章

  • 从零开始USRP 03 实现一个USRP收发demo(hello world)
    这里用的源码来自:UHDC/C++编程实例USRP发送、接收数据我所使用的USRP型号是N210r4,因此默认地址的最后一位是4,使用Ubuntu20.04运行(至于为什么之前配的是18.04,那是因为之前是在我的虚拟机上玩耍的,但是我的虚拟机配网络有点麻烦,因此我给学姐的学长借了一台Linux笔记本,用这台笔......
  • 3500/05-01-03-00-00-00 能够有效地监控公共交通系统
    3500/05-01-03-00-00-00能够有效地监控公共交通系统在苏古尔的工作中16],开发了智能公交车站-乘客信息系统,以使管理员能够有效地监控公共交通系统,并使使用该系统的人能够同时观察关于这些车辆的位置和状态的信息。在所提出的解决方案中,基于嵌入式微型计算机的系统和数字监视器被......
  • 'T' must be a non-abstract type with a public parameterless constructor
    虽然工作10多年,但是真正使用框架的项目很少很少...所以对接口,方法等约束毫无经验今天做了个动态代理dispatchproxy的类,但是在调用时却一直提示如下错误: ErrorCS0310'T'mustbeanon-abstracttypewithapublicparameterlessconstructorinordertouseitas......
  • 【性能测试】03基础知识篇-测试指标
    本文介绍性能测试的各种测试指标。系统性能指标ResponseTime:RT交易响应时间定义及解释响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。在性能检测中一般以压力发起端至被压测服务器返回处理结果的时间为计量,单位......
  • Pycharm中安装了pandas模块,但在引入该模块时提示No module named 'pandas'
    之前遇到一个问题,先放上问题截图  pandas模块是安装在site-packages目录下的一个文件,但是引用时可以看到有红色的波浪线提示没有该模块,我们可以这样试试将projectstructure添加site-packages目录,步骤:(1)选择File—>settings—>project:pythonWork—>projectstructure  ......
  • GreatSQL社区月报 | 2023.03
    GreatSQL社区月报|2023.03GreatSQL是一个开源的MySQL技术路线数据库社区,社区致力于通过开放的社区合作,构建国内自主MySQL版本及开源数据库技术,推动中国开源数据库及应用生态繁荣发展。为了帮助社区的小伙伴们更好地了解GreatSQL社区的实时进展,我们决定每月更新发布一次......
  • Can't get JDBC type for null
    背景Java连接PostGres库,运行SparkSQL脚本报错,原因是:SQL脚本中不能存在null关键字.解决方案将null替换为''即可.......
  • P9203 时效「月岩笠的诅咒」 题解
    题目传送门题目大意判断每次经过以下操作其一后,\(a\)与\(b\)是否相等:将\(a\)加上\(1\),即\(a\getsa+1\);将\(b\)加上\(1\),即\(b\getsb+1\)。解题思路\(a\)和\(b\)都是每次加\(1\),所以如果它们相等,那它们的小数部分应该是相等的,所以问题就变成了判断\(a\)......
  • Rsut 不使用 'trim()' 为什么空格还是被存储
    在使用Rust的std::io::stdin()方法接收用户输入时,它实际上会将用户输入的字符作为一个字符串(String类型)存储在内存中。当用户键入一个字符并按下回车键时,std::io::stdin()会读取整行内容,包括回车符\r和换行符\n。这些字符都被包含在字符串中,而不是被忽略。因此,即使用户......
  • 100天学会100个shell脚本-03-规范日期格式
    第二天[root@gbysh]#./03-规范日期格式.sh7141999Jul141999[root@gbysh]#./03-规范日期格式.sh7-14-1999Jul141999[root@gbysh]#./03-规范日期格式.sh7/14/1999Jul141999[root@gbysh]#./03-规范日期格式.sh123141999./03-规范日期格式.sh:Unknow......