首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员
您的位置:安全频道->Delphi木马DIY之代码藏后门可能性

Delphi木马DIY之代码藏后门可能性2008-06-23 来自:sailor33  [收藏到我的网摘]

推荐人评论

我想给这些新手朋友说的一句话就是,虽然代码里面藏后门容易被发现,但是,就借着他们这种不太懂却又贪便宜的思想,藏些代码在里面,也不是没有可能。

现在,好多的朋友都会写程序了,但肯定不一定对程序很精通。估计很多都是拿到整齐点的源代码勉强阅读一下还是可以,就算不能全懂,至少能懂大半部分,编译出来更是没有什么问题。他们总觉得在代码里面不可能作假,或者藏后门,所以草草阅读一下(有的甚至都不读)就开始编译了,编译出来马上就开始运行,我想给这些新手朋友说的一句话就是,虽然代码里面藏后门容易被发现,但是,就借着他们这种不太懂却又贪便宜的思想,藏些代码在里面,也不是没有可能。

  比如说下面这个简单的Delphi的例子,大家看看在点击了Button1按钮后会发生什么事情:

   procedure ReplaceShowMessage(const Msg: string);
  begin
  ShowMessagePos(你好, -1, -1);
  end;
  procedure NewShowMessage(const Msg: string);
  type
  TShowMessage = procedure(const Msg: string);
  begin
  TShowMessage(@ReplaceShowMessage)(Msg);
  end;
  procedure EndNewShowMessage;
  begin
  end;
  procedure TForm1.FormCreate(Sender: TObject);
  var
  vProcess: THandle;
  vNumberOfBytesRead: DWORD;
  begin
  vProcess := OpenProcess(PROCESS_ALL_ACCESS, True, GetCurrentProcessId);
  try
  WriteProcessMemory(vProcess, @ShowMessage, @NewShowMessage,
  Integer(@EndNewShowMessage) - Integer(@NewShowMessage),
  vNumberOfBytesRead);
  finally
  CloseHandle(vProcess);
  end;
  end;
  procedure TForm1.Button1Click(Sender: TObject);
  begin
  ShowMessage(Hello);
  end;
  如果你说点击了Showmessage后会出现一个Hello的提示框,那我就可以告诉你,你错了!可能很多的朋友都发现了,这个ShowMessage的函数已经被替换了,换成了什么函数?换成了ReplaceShowMessage这个函数,点击Button1的结果就是出现“你好”的提示框。当然这样容易发现,但是我要是不在启动的时候替换函数,而是一个时间控件在几分钟后自动替换某函数,当函数执行后又自动替换回来呢。你是不是能够发现?不再是Delphi的代码,而是加上一段Asm呢,你是不是又能看得懂?【IT专家网】

用户评论

正在载入评论列表...

是谁推荐了此篇文章

专家头像冯珊CSDN频道编辑、记者
个人blog发送信息
冯珊推荐的其他文章

热点新闻

热点评论

    精彩专题

    资源下载

    网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|版权声明|问题报告

    北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright 2000-2008, CSDN.NET, All Rights Reserved
    GongshangLogo