标题:[求助]如何使一个EXE文件只能由另一个EXE文件打开?(已解决,见16楼)
只看楼主
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
以下是引用LuoSZ在2007-9-19 18:38:51的发言:

按照Knocker的思路,我试做了一个小程序,代码如下:(详细见附件)
Private Sub cmdRun_Click()
'运行并删除
Dim b As String
b = Shell("C:\WINDOWS\system32\lsz.exe", vbNormalFocus)

Kill Environ("windir") & "\system32\lsz.exe" 'Environ("windir")获得系统目录
'这里还要考虑正在运行的文件不能删除

End Sub

Private Sub cmdShi_Click()
' 把资源文件中的EXE文件释放到C:\WINDOWS\system32\并命名为lsz.exe
Dim App1() As Byte
If Dir("C:\WINDOWS\system32\lsz.exe") = "" Then
App1 = LoadResData(102, "CUSTOM")
Open "C:\WINDOWS\system32\lsz.exe" For Binary As #2
Put #2, , App1
Close #2 '
End If

End Sub

通过这次学习,我受益非浅!学到了资源文件的建立和使用,学到了SHELL函数的用法,等等。所以,我快乐!
我把这个例子放这里,一是作为总结,二是给那些象我一样的朋友参考,三是希望高手有空也看看,并提提意见。
再次感谢Knocker的帮助!也感谢所有好心人!
小燕子说的方法“EXE加壳”,也许也不错,但太深奥了。如果小燕子有空的话就给我们这些菜鸟详细讲讲。

1。红字处查询
CreateProcess()
WaitForSingleObject()用法
2。这种方法对付一般用户还行,还可以将目标设为不可见等等,但对有经验的或者成心找麻烦的还是有问题的,如果你了解汇编及PE,或者去汇编版找一下现任版主的一个开源代码,加以修改就可以直接在目标文件上加密了


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-09-19 21:14
LuoSZ
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2007-9-7
得分:0 
谢谢Knocker!
刚刚搜索了CreateProcess()、WaitForSingleObject(),感觉很难懂!

我学习,所以我快乐!
2007-09-19 21:28
lrd1986
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2007-9-11
得分:0 

运行的时候提示错误哦。。。

实时错误 '75'
路径/文件访问错误


走自己的路,让人说去
2007-09-19 21:49
LuoSZ
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2007-9-7
得分:0 
以下是引用lrd1986在2007-9-19 21:49:45的发言:

运行的时候提示错误哦。。。

实时错误 '75'
路径/文件访问错误

要有错就应是这里:
Kill Environ("windir") & "\system32\lsz.exe" 'Environ("windir")获得系统目录
'这里还要考虑正在运行的文件不能删除


那是因为要删除的文件正在运行!
因此再加些代码判断和处理就OK啦。


我学习,所以我快乐!
2007-09-19 21:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-170442-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.542412 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved