科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Delphi木马DIY之代码藏后门的可能性

Delphi木马DIY之代码藏后门的可能性

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

现在,好多的朋友都会写程序了,但肯定不一定对程序很精通。这样容易发现,但是我要是不在启动的时候替换函数,而是一个时间控件在几分钟后自动替换某函数,当函数执行后又自动替换回来呢。要是替换了你的Windows.pas或者Windows.h,或者另外的什么文件,以后你编译出来的东西有可能个个都会是带后门的。

来源:SohuIT 2008年6月23日

关键字: 代码 const Delphi

  • 评论
  • 分享微博
  • 分享邮件

  现在,好多的朋友都会写程序了,但肯定不一定对程序很精通。估计很多都是拿到整齐点的源代码勉强阅读一下还是可以,就算不能全懂,至少能懂大半部分,编译出来更是没有什么问题。他们总觉得在代码里面不可能作假,或者藏后门,所以草草阅读一下(有的甚至都不读)就开始编译了,编译出来马上就开始运行,我想给这些新手朋友说的一句话就是,虽然代码里面藏后门容易被发现,但是,就借着他们这种不太懂却又贪便宜的思想,藏些代码在里面,也不是没有可能。 比如说下面这个简单的Delphi的例子,大家看看在点击了Button1按钮后会发生什么事情: procedure ReplaceShowMessage(const Msg: string);beginShowMessagePos(’你好’, -1, -1);end;procedure NewShowMessage(const Msg: string);typeTShowMessage = procedure(const Msg: string);beginTShowMessage(@ReplaceShowMessage)(Msg);end;procedure EndNewShowMessage;beginend;procedure TForm1.FormCreate(Sender: TObject);varvProcess: THandle;vNumberOfBytesRead: DWORD;beginvProcess := OpenProcess(PROCESS_ALL_ACCESS, True, GetCurrentProcessId);tryWriteProcessMemory(vProcess, @ShowMessage, @NewShowMessage, Integer(@EndNewShowMessage) - Integer(@NewShowMessage), vNumberOfBytesRead);finallyCloseHandle(vProcess);end;end;procedure TForm1.Button1Click(Sender: TObject);beginShowMessage(’Hello’);end;

  如果你说点击了Showmessage后会出现一个Hello的提示框,那我就可以告诉你,你错了!可能很多的朋友都发现了,这个ShowMessage的函数已经被替换了,换成了什么函数?换成了ReplaceShowMessage这个函数,点击Button1的结果就是出现“你好”的提示框。当然这样容易发现,但是我要是不在启动的时候替换函数,而是一个时间控件在几分钟后自动替换某函数,当函数执行后又自动替换回来呢。你是不是能够发现?不再是Delphi的代码,而是加上一段Asm呢,你是不是又能看得懂? 在这当然不是教大家用这个方法去骗人(当然现在都执意自己编译程序用的人的肉鸡啊,资料啊这类东西可能质量要高点,想起都让人心动的),只是要在这里提醒大家,不要听到别人公布代码了就马上去编译执行,在看不懂的时候还是小心点。网络就像一个园子,园子大了,什么鸟都有,这个网络大了啊,什么人都有。 如果看这个文章的你就有在自己的程序里面加后门的习惯,那么我想请问你一句你要肉鸡有什么用?说句老实话,我也是才接触网络安全的时候,抓过鸡。但是都是服务器,是靠漏洞搞下来的,从来没有说过在网页上挂马啊,甚至在自己的软件里面加后门的事情,真正是想都不敢想。我的每一个程序我都看待他们像我的爱人一样,爱他们,真想不通为什么有人会在自己的程序里面加后门来玷污自己。 此文的思路来自安全焦点里面的一个牛人说的想在自己的代码里面加恶意代码(防止不小心中了木马,被人偷走资料,引起严重后果),和今天晚上一直在学习汇编,想起haicao兄弟说的话(先把Delhpi搞熟了后再看汇编吧,汇编上手不易的,容易对程序失去兴趣,想起很多的朋友都不太懂汇编的)想到的,就找了一段代码来给新手说明一下。其实在代码里面藏后门真的是一旦不注意,后害无穷啊。要是替换了你的Windows.pas或者Windows.h,或者另外的什么文件,以后你编译出来的东西有可能个个都会是带后门的。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章