把A文件加入到B文件中,到B文件运行时同时也运行A文件.(50分)

  • 主题发起人 主题发起人 abencat
  • 开始时间 开始时间
A

abencat

Unregistered / Unconfirmed
GUEST, unregistred user!
把A文件加入到B文件中,到B文件运行时同时也运行A文件.<br><br>原理及简单例子.
 
想干坏事。
 
你想在这里研究病毒??不明智!!<br>不如去黑客论坛,汇编网站一类的地方。
 
你能说鸦片就是坏东西吗? 不要一看到就下定论。<br>任何一件事情。要一分为二的看待。
 
A加入B<br>var<br> fileA,fileB: string;<br> aStream,bStream: TMemoryStream;<br> i: integer;<br>begin<br> aStream := TMemoryStream;<br> bStream := TMemoryStream;<br> aStream.loadfromfile(fileA);<br> bStream.loadFromfile(fileB);<br> bStream.seek(0,soFromEnd);<br> bStream.copyfrom(aStream,0);<br> i := aStream.size;<br> bStream.write(i,sizeof(i));<br> bStream.savetofile(fileB); <br> bStream.free;<br> aStream.free;<br>end;<br><br>B运行A实现起来跟上面的代码差不多<br>&nbsp; bStream.read(i,sizeof(i));<br>&nbsp; bStream.seek(-(i+sizeof(i)),soFromEnd);<br>&nbsp; cStream.copyfrom(bStream,i-sizeof(i));<br>&nbsp; cStream.savetofile(fileC);<br>&nbsp; winexec(fileC);<br><br>
 
利用流加入文件尾部,记录下地址,<br>然后用的时候释放出来,用一个线程<br>执行他就行啦。
 
上面的做法都是在硬盘上生成一个临时文件,然后运行那个临时文件。<br><br>如果深入的话,应该是吧A程序加到B程序的尾部,然后修改B程序的EP,改成A程序的<br>EP,这样就先执行了A,然后在A里再通过jmp xxxxxx,跳到B的ep,这样就执行了B。<br><br>这样做是因为B程序往往是别人的程序,只修改一个EP,很简单。但是这种做法只能<br>依次执行,不能同时执行。要同时执行就要多开一个线程了。<br>
 
呵呵<br>如果两个程序都是自己得,那就用流<br>如果一个程序是别人得,那就和病毒感染得原理一样了
 
病毒感染的原理就是修改原来那个程序的EP为自己的ep,<br>在病毒代码的尾部jmp 到原来的ep。
 
To薄荷<br>对于修改程序的EP的问题,我也看了不少用汇编写的病毒,可是用Delphi如何分析某个程序的EP,就有点不好做了。
 
delphi分析怎么会不好使?<br>我就做过这样的程序,都是自定义一个结构,然后读PE文件。
 
up!推动病毒技术新的发展高潮~~!~~
 
ep是什么,哪位能给解释一下????
 
Entry Point<br><br>一个程序的入口地址.
 
是调到内存以后的地址吗????
 
是调入内存以后的地址,准确的说应该是建立内存映像后的地址。这个地址是固定的。
 
薄荷:如何得到EP的地址?请说详细的方法 !!
 
如果只是要得到的话,很多软件都可以:PEdump,w32asm等,如果是要自己写程序得到<br>那就要了解PE的头结构,不是一言俩语的了。
 
看来还是汇编实用了(在这方面)
 
多人接受答案了。
 
后退
顶部