MemLibrary 内存 加载DLL DELPHI

一个简单的例子:

type
  mbf = function(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer;
  stdcall;

procedure TForm1.Button1Click(Sender: TObject);
var
  h: integer;
  mb: pointer;
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  ms.LoadFromFile('f:\user32.dll');
  h := memLoadLibrary(ms.Memory);

  if h > 0 then
  begin
    mb := memGetProcAddress(h, 'MessageBoxA');
    if mb <> nil then
      mbf(mb)(handle, 'test', 'test', mb_ok);
  end;

  memFreeLibrary(h);
  ms.Free;
end;

代码未经测试,只是转载备用。

Continue Reading

Win32AutoRun.Agent.NZ 蠕虫感染文件的简单分析和文件修复 (续)

Win32AutoRun.Agent.NZ 蠕虫感染文件的简单分析和文件修复 (续)
—Tmp81.exe文件的相关分析

今天看到杂志上编辑关于《Win32AutoRun.Agent.NZ 蠕虫感染文件的简单分析和文件修复》一文的评论。感觉那么写确实是肤浅了一些,关键的地方没有进行分析。当时写那篇文章的目的就是文件的修复,所以没有对释放的文件进行进一步的分析。现在我们来分析病毒的全部幕后操作。

简单说下temp81文件的获取,用OD载入上篇文章中的病毒样本“ctc已感染.exe”,并且配置好相关的测试环境。运行FileMon排除掉系统进程以便减少数据量(主要监视“ctc已感染.exe”);同时运行Wireshark,选择相关网络适配器后开始捕获数据。在004D3132 FFD0 call eax 这一行下F2断点,F9运行程序,程序中断后定位到当前用户的temp文件夹下就可以看到释放的程序了,如图01。继续F9运行程序,程序完全运行后注意观察文件监视器(FileMon),发现tmp81.exe请求创建了以下的程序:6to4.dll(如02),lpk.dll(此文件请求失败,最终调用system32下的同名文件,如03),TempDel.Bat(图04)。虽然程序显示创建了TempDel.Bat但是由于最后释放的批处理文件功能是删除自身以及释放的文件,所以程序在运行后是找不到这个文件以及释放的tmp81.exe的。TempDel.Bat的获取在可以OD动态调试tmp81.exe的时候运行tmp81.exe就可以得到批处理文件的内容了,如图05,我们之所以能获取这个批处理文件是由于tmp81.exe正在执行中,所以会删除失败,通过批处理文件的内容可以看到如果删除失败,批处理会不断的尝试再次删除释放的文件直到删除成功,这就是我们为什么可以得到删除自身的批出来文件的原理了。

Continue Reading

糗事百科【http://www.qiushibaike.net/】被挂马

页面源码:










挂马地址:
http://nu785.3322.org:6677/m/mc12.js
http://nu785.3322.org:6677/m/index.html
建议大家不要暂时不要访问该站点!