社区
Delphi
帖子详情
再问如何隐蔽地自动运行一个程序?
peterluolaw
2001-11-13 09:55:29
我知道使用注册表/VXD/DLL等方法可以实现一个程序的隐蔽自动运行.但本人是一初学者,只会使用注册表一种方法来实现.可使用注册表又很容易被别人使用系统配置工具将程序屏蔽掉.那么有没有什么比较好的方法来实现这一功能呢?
...全文
125
13
打赏
收藏
再问如何隐蔽地自动运行一个程序?
我知道使用注册表/VXD/DLL等方法可以实现一个程序的隐蔽自动运行.但本人是一初学者,只会使用注册表一种方法来实现.可使用注册表又很容易被别人使用系统配置工具将程序屏蔽掉.那么有没有什么比较好的方法来实现这一功能呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xhc_2000
2001-12-24
打赏
举报
回复
hehe
mountlin
2001-12-24
打赏
举报
回复
good,挺全的
darrell
2001-12-24
打赏
举报
回复
广外女生木马的分析方法
--------------------------------------------------------------------------------
最近又有一种新的国产木马出现了,它有个好听的名字,叫做“广外女生”。这个木马是广东外语外贸大学“广外女生”网络小组的作品,它可以运行于WIN98,WIN98SE,WINME,WINNT,WIN2000或已经安装Winsock2.0的Win95/97上。与以往的木马相比,它具有体积更小、隐藏更为巧妙的特点。可以预料,在将来的日子里它会成为继“冰河”之后的又一流行的木马品种。
由于“广外女生”这个木马的驻留、启动的方法比较具有典型性,下面我就通过对这种新型木马的详细分析过程来向大家阐述对一般木马的研究方法。下面的测试环境为Windows2000中文版。
一、所需工具
1.RegSnap v2.80 监视注册表以及系统文件变化的最好工具
2.fport v1.33 查看程序所打开的端口的工具
3.FileInfo v2.45a 查看文件类型的工具
4.ProcDump v1.6.2 脱壳工具
5.IDA v4.0.4 反汇编工具
二、分析步骤
一切工具准备就绪了,我们开始分析这个木马。一般的木马的服务器端一旦运行之后都会对注册表以及系统文件做一些手脚,所以我们在分析之前就要先对注册表以及系统文件做一个备份。
首先打开RegSnap,从file菜单选new,然后点OK。这样就对当前的注册表以及系统文件做了一个记录,一会儿如果木马修改了其中某项,我们就可以分析出来了。备份完成之后把它存为Regsnp1.rgs。
然后我们就在我们的电脑上运行“广外女生”的服务器端,不要害怕,因为我们已经做了比较详细的备份了,它做的手脚我们都可以照原样改回来的。双击gdufs.exe,然后等一小会儿。如果你正在运行着“天网防火墙”或“金山毒霸”的话,应该发现这两个程序自动退出了,很奇怪吗?且听我们后面的分析。现在木马就已经驻留在我们的系统中了。我们来看一看它究竟对我们的做了哪些操作。重新打开RegSnap,从file菜单选new,然后点OK,把这次的snap结果存为Regsnp2.rgs。
从RegSnap的file菜单选择Compare,在First snapshot中选择打开Regsnp1.rgs,在Second snapshot中选择打开Regsnp2.rgs,并在下面的单选框中选中Show modifiedkey names and key values。然后按OK按钮,这样RegSnap就开始比较两次记录又什么区别了,当比较完成时会自动打开分析结果文件Regsnp1-Regsnp2.htm。
看一下Regsnp1-Regsnp2.htm,注意其中的:
Summary info:
Deleted keys: 0
Modified keys: 15
New keys : 1
意思就是两次记录中,没有删除注册表键,修改了15处注册表,新增加了一处注册
表。再看看后边的:
File list in C:\WINNT\System32\*.*
Summary info:
Deleted files: 0
Modified files: 0
New files : 1
New files
diagcfg.exe Size: 97 792 , Date/Time: 2001年07月01日 23:00:12
--------------
Total positions: 1
这一段话的意思就是,在C:\WINNT\System32\目录下面新增加了一个文件diagcfg.exe,这个文件非常可疑,因为我们在比较两次系统信息之间只运行了“广外女生”这个木马,所以我们有理由相信diagcfg.exe就是木马留在系统中的后门程序。不信的话你打开任务管理器看一下,会发现其中有一个DIAGCFG.EXE的进程,这就是木马的原身。但这个时候千万不要删除DIAGCFG.EXE,否则系统就无法正常运行了。
木马一般都会在注册表中设置一些键值以便以后在系统每次重新启动时能够自动运行。我们再来看看Regsnp1-Regsnp2.htm中哪些注册表项发生了变化,凭借经验应该注意到下面这条了:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\@
Old value: String: %1 %*
New value: String: C:\WINNT\System32\DIAGCFG.EXE %1 %*
这个键值由原来的 %1 %*被修改为了C:\WINNT\System32\DIAGCFG.EXE %1 %*,因为其中包含了木马程序DIAGCFG.EXE所以最为可疑。那么这个注册表项有什么作用呢?
它就是运行可执行文件的格式,被改成C:\WINNT\System32\DIAGCFG.EXE %1 %*之后每次再运行任何可执行文件时都要先运行C:\WINNT\System32\DIAGCFG.EXE这个程序。
原来这个木马就是通过这里做了手脚,使自己能够自动运行,它的启动方法与一般普通木马不太一样,一般的木马是在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run*
键里增加一个键值,使自己能够自启动,但这种方法被杀毒软件所熟知了,所以很容易被查杀。而“广外女生”这个木马就比较狡猾,它把启动项设在了另外的位置。
现在我们已经掌握了这个木马的驻留位置以及在注册表中的启动项,还有重要的一点就是我们还要找出它到底监听了哪个端口。使用fport可以轻松的实现这一点。在命令行中运行fport.exe,可以看到:
……
1176 DIAGCFG -> 6267 TCP C:\WINNT\System32\DIAGCFG.EXE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 注意这行!!!
……
我们可以清楚的看到,木马程序监听在TCP的6267号端口上了。我们到目前为止就可以说掌握了“广外女生”这个木马在我们系统中的全部动作了,现在我们可以轻而易举的查杀它了。
三、查杀
经过前面的分析我们已经了解了“广外女生”这种木马的工作方式,现在我们就来清除它。下面就是彻底清除“广外女生”的方法,注意:这个步骤的次序不能颠倒,否则可能无法完全清除掉此木马。
1.按“开始”菜单,选择“运行”,输入regedit,按确定。打开下面键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\,但是先不要修改,因为如果这时就修改注册表的话,DIAGCFG.EXE进程仍然会立刻把它改回来的。
2.打开“任务管理器”,找到DIAGCFG.EXE这个进程,选中它,按“结束进程”来关掉这个进程。注意,一定也不要先关进程再打开注册表管理器,否则执行regedit.exe时就又会启动DIAGCFG.EXE。
3.把HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\的键值由原来的C:\WINNT\System32\DIAGCFG.EXE %1 %*改为 %1 %*。
4.这时就可以删除C:\WINNT\System32\目录下的DIAGCFG.EXE了。切记万万不可首先删除这个文件,否则的话就无法再系统中运行任何可执行文件了。由于我们下面还打算进一步深入分析这个木马,所以现在不删除它,而是把它拷贝到其他的目录以便研究。
四、深入研究
我们已经知道了“广外女生”的基本工作原理、启动流程以及如何彻底清除它了,但是还有一点我们没有彻底弄清楚,那就是它是如何对付“天网防火墙”或“金山毒霸”的。要深入了解这一点,我们必须要去看“广外女生”的代码,这个木马并没有公布源代码,但是我们仍然可以通过反汇编它来看个究竟。
“广外女生”的服务器端只有96K,显然是使用了压缩软件进行了加壳的,我们首先就要确定它到底加了什么壳。通过使用FileInfo这个小工具就可以侦测出来。现在我们就把前面分析过的那个DIAGCFG.EXE复制到FileInfo的目录下,然后在命令行下fi.exe,然后按回车,就会显示:
……
FileInfo就已经检测出DIAGCFG.EXE是使用了ASPack v1.06b进行加壳。知道了它的加密方法我们就可以使用ProcDump来把它脱壳了。
运行ProcDump,点击Unpack按钮,因为我们要脱ASPack v1.06b的壳,所以就在其中选中Aspack<108,然后按OK。这时它会让你打开要脱壳的文件,我们就选DIAGCFG.EXE,打开。然后稍微等几秒种后按“确定”,ProcDump就会把DIAGCFG.EXE脱壳,然后会出个对话框要你把脱壳过的文件存盘,我们就把它存为gwns.exe。
注意:这时候,木马又在你的系统上运行了一次,所以必须按照前面的清除步骤重新把它清除掉。由于前面已经写过清除方法,这里就不再赘述了。
好了,现在我们已经得到了这个木马加壳前的原始文件了,看看脱壳过的gwns.exe,有194k之大,比原来的程序大了一倍还多,这就是加壳软件的功劳了。现在就可以使用反汇编程序对其进行反汇编,然后看它的汇编程序代码了。
我们就用IDA来反汇编它,顺便说一句,这个IDA是个超强的反汇编工具,是cracker以及Windows hacker所必备的工具。下面我们就来看看部分反汇编过的代码:
……
木马首先加载了kernel32.dll,然后利用GetProcAddress来得到RegisterServiceProcess这个API的地址,木马首先需要把自己注册为系统服务,这样在Win9x下运行时就不容易被任务管理器发现。然后它会GetCommandLineA来得到运行参数,如果参数是可执行文件的话就调用Winexec来运行。
……
然后木马会查找snfw.exe和kav9x.exe的进程,也就是“天网防火墙”或“金山毒霸”的进程,然后将其杀掉。
下面就是修改木马的注册表启动项,即HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\项,使其能够在每次系统重新启动时能够自行启动。接下来木马就会初始化Winsock dll,绑定端口,等待木马客户端的连接。
五、总结
截止目前为止,我们已经完成了对“广外女生”这个木马程序的全部分析过程,了解了木马的启动、运行机制。当然,我写本文的目的并不是简单的介绍“广外女生”这一种木马,而是通过对这个具有典型意义的木马的详细分析,来向大家介绍对一般木马的分析方法。利用本文的分析方法,你完全对任何一种未知的木马品种进行分析。最后我们再来总结一下对木马分析的方法及步骤:
首先对系统注册表以及系统文件进行备份,然后运行木马服务器端,再对运行过木马的注册表以及系统文件进行记录,利用注册表分析工具对两次记录结果进行比较,这样就可以了解木马在系统中做了哪些手脚。利用fport来查看木马监听端口。然后利用所获取的信息做出木马的清除方法。
如果想要对木马进行深入的分析,还应该对木马服务器端进行脱壳、反汇编。这样就可以完全掌握木马的任何动作,当然,这需要你对汇编语言有相当的掌握程度以及一定的耐心,因为冗长的汇编代码不是一般的新手所能完全阅读的。
如果还想进一步分析木马报文格式的话,就用sniffer对木马的端口进行监听,然后进行比较分析,这种分析方法比较复杂,本文就不举例说明了。
只是阅读文章还不行,要想完全分析清楚一只木马,还需要实际操练一下!祝你好运!
darrell
2001-12-24
打赏
举报
回复
写错了是广外女生
darrell
2001-12-24
打赏
举报
回复
可以参考以下木马广外少女的方法
知足常乐
2001-12-24
打赏
举报
回复
帮你 U P
title
2001-12-24
打赏
举报
回复
u p
长弓落日
2001-12-24
打赏
举报
回复
98下自动启动一般有十种方法:
1. Autostart 文件
C:\windows\start menu\programs\startup {chinese/english}
在注册表中的位置: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders Startup="C:\windows\start menu\programs\startup"
它将很容易被程序更改
2. Win.ini
[windows]
load=file.exe
run=file.exe
3. System.ini [boot]
Shell=Explorer.exe file.exe
4. c:\windows\winstart.bat
看似平常,但每次都重新启动
5. Registry键
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
6. c:\windows\wininit.ini
一旦运行就被windows删除,安装的setup程序常用
Example: (content of wininit.ini)
[Rename]
NUL=c:\windows\picture.exe
例子:将c:\windows\picture.exe设置为NUL, 表示删除它,完全隐蔽的执行!
7. Autoexec.bat
在DOS下每次自启动
8. Registry Shell Spawning (使用过Subseven吗?看看吧)
[HKEY_CLASSES_ROOT\exefile\shell\open\command] @="\"%1\" %*"
[HKEY_CLASSES_ROOT\comfile\shell\open\command] @="\"%1\" %*"
[HKEY_CLASSES_ROOT\batfile\shell\open\command] @="\"%1\" %*"
[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] @="\"%1\" %*"
[HKEY_CLASSES_ROOT\piffile\shell\open\command] @="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] @="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] @="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command] @="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] @="\"%1\" %*"
这些"%1 %*"需要被赋值, 如果将其改为 "server.exe %1 %*",
server.exe将在每次启动时被执行,这些exe/pif/com/bat/hta等文件都可被执行
9. Icq Inet
[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\test]
"Path"="test.exe"
"Startup"="c:\\test"
"Parameters"=""
"Enable"="Yes"
[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps当icq发现网络连接时,将被执行(我使用的icq2000b的键值有所不同,但您可以自行查找)
您发现OICQ有这方面的问题吗?^_^...
10. 杂项说明
找找以下的键值:
[HKEY_LOCAL_MACHINE\Software\CLASSES\ShellScrap]
@="Scrap object" "NeverShowExt"=""
NeverShowExt 键 可以隐藏SHS文件的扩展名.shs
如果你将一个文件改名为:"abc.jpg.shs" 它只显示"abc.jpg"
如果你的注册表里有很多NeverShowExt键值,删除他们。
注意:
这些方法不能全部适应Win2K,但您可以自行检测。
darrell
2001-12-24
打赏
举报
回复
关注!!!
ywk
2001-11-14
打赏
举报
回复
关注
BigBen
2001-11-14
打赏
举报
回复
使用dll跳板.
海天候
2001-11-14
打赏
举报
回复
在C:\WINDOWS下建一BAT文件加上START 你的程序名也可以运行
在system.ini,win.ini中附在explorer或run后运行
关联文件
更恐怖的方法:实时扫描注册表,检测到没有自己的键值,没有就加入。令他防不胜防,要不就实时修改system.ini,win.ini。
net_quite
2001-11-13
打赏
举报
回复
我也想知道。
语言
程序
设计课后习题答案
2-18 编写
一个
程序
,
运行
时提示输入
一个
数字,再把这个数字显示出来。 解: 源
程序
: #include <iostream.h> int main() { int i; cout 请输入
一个
数字:"; cin >> i; cout 您输入
一个
数字是" ; return 0; }
程序
...
测试培训教材
一个
好的测试管理工具应该能把以上几个阶段都管理起来。 测试人员每时每刻都在度量别人的工作成果,而测试人员的工作成果又由谁来度量呢?度量的标准和依据是什么呢?软件测试的度量是测试管理必须仔细思考的
问
题。...
尹成JAVA快速入门
用关键词synchronized,
程序
员可以说明某些方法在
一个
类中不能并发地
运行
。这些方法在监督
程序
控制之下,确保变量维持在
一个
一致的状态。 10.动态性 Java语言设计成适应于变化的环境,它是
一个
动态的语言。例如,...
[转]信息安全相关理论题(三)
21、静态分析是
运行
程序
后进行调试? A、 对 B、 错 您的答案: 标准答案: B 22、安卓反编译后会出现$符号字节码表示是匿名内部类? A、 对 B、 错 您的答案: 标准答案: A 23、反编译安卓应用后,一般应该先查看哪...
java new
一个
线程执行完后会
自动
销毁吗_Java基础总结,超级全的面试题
Java中是否可以覆盖(override)
一个
private 或者是 static的方法?是否可以在 static 环境中访
问
非static 变量? static关键字表明
一个
成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访
问
。 ...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章