易语言怎么编写远程控制啊?像灰鸽子的那种!最好有源代码!
2个回答
展开全部
gh0st远控软件采用驱动级RESSDT过主动,svchost参数启动,替换系统服务的方式工作的,工作方式较为先进,美中不足的部分是没有进行驱动级或用户级隐藏,当然这部分可以添加进去。编码利用了VC的编程环境。
一、环境配置
编译环境一定要配置好:DDK+SDK+VC6,DDK用来编译sys文件的,SDK+VC6是用来编译工程的,配置部分比较简单,网上有很多资料,这里不再详述,有兴趣的朋友也可以查看DDK和SDK的相关帮助。
二、特征码定位简述
杀毒软件查杀木马的原理基本是根据特征查杀的,被查杀的部分我们称之为特征码,所以我们可以利用特征码定位工具MyCLL定位出病毒的特征码位置,定位工具原理是将被扫描木马分块,利用分段填充的方式,匹配杀软的特征值,找到杀软查杀病毒的位置。
定位出特征码,如何反向找到源码中的对应位置呢?请看下面分析,
三、二进制文件与源码定位之map文件利用
map文件是二进制和源码之间对应的一个映射文件。
我们假设根据第三步我们定位出了病毒的特征码:
病毒名称 特征码位置 内存地址
svchost.dll 000038AA_00000002 100044AA
svchost.dll 00005F98_00000002
第一步设置VC编译环境生成Map文件。
在 VC 中,点击菜单“Project -> Settings”选项页(或按下 Alt+F7),选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要点击 Link 选项卡,选中“Generate mapfile”复选框,并在最下面的 Project Options 里面输入:/mapinfo:lines,表示生成 MAP 文件时,加入行信息。设置完成。
第二步编译VC工程,设置活动工程编译即可,这个不用说明。这个步骤完成后,在release(或debug)目录,多了一个.map文件(比如svchost.map)。
第三步打开map文件(用UE或文本编辑器打开都行),形式如下:
(begin)
Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008)
Preferred load address is 10000000
---------------------------------------------------------------------------1----(为方便说明,wrw添加)
Start Length Name Class
0001:00000000 00010a50H .text CODE
0001:00010a50 00000485H .text$x CODE
0002:00000000 000004c8H .idata$5 DATA
......
0003:00000010 00000004H .CRT$XIZ DATA
0003:00000020 00001a50H .data DATA
0003:00001a70 00000688H .bss DATA
0004:00000000 000000a8H .rsrc$01 DATA
0004:000000b0 00000cf0H .rsrc$02 DATA
----------------------------------------------------------------------------2---(为方便说明,wrw添加)
Address Publics by Value Rva+Base Lib:Object
0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj
0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj
0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f Audio.obj
0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj
0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj
......
0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f FileManager.obj
0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f FileManager.obj
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f FileManager.obj
0001:00003730 ?CreateLocalRecvFile@CFileManager@@AAEXPAE@Z 10004730 f FileManager.obj
......
----------------------------------------------------------------------------3---(为方便说明,wrw添加)
Line numbers for .\Release\FileManager.obj(E:\vtmp\gh0st3src\Server\svchost\common\FileManager.cpp) segment .text
17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0
25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee
77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d
......
532 0001:0000340f 534 0001:00003414 537 0001:00003428 540 0001:00003440
546 0001:0000345d 547 0001:00003487 548 0001:00003490 549 0001:00003492
551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554 0001:000034d4
558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564 0001:00003506
......
(end)
我们看下,定位svchost.dll 的第一个特征码内存地址为:100044AA,在第2块中,我们可以找到RVA+BASE与之很接近的是
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
这样我们可以定位到FileManager.cpp中的FixedUploadList函数,是不是范围缩小了?
下面我们再缩小代码行
利用这个公式:特征码行偏移 = 特征码地址(Crash Address)- 基地址(ImageBase Address)- 0x1000
看起来好像很难,其实很简单,我们将100044AA去掉内存基址10000000,再减1000,因为PE很多从1000开始,可以得到代码偏移地址为34AA。到第3块中找对应的代码行。
偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中间,也就是551行和552行中间,我们到源程序中查找第551行:
wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash);
这样就定位出源代码了,要怎么修改就怎么修改它就可以了。
四、实战免杀
A、卡巴免杀
首次编译后,先做卡巴的免杀。卡巴杀sys文件和dll,当然也就杀包装它们的install.exe,最后卡巴还杀生成的sever,我这里说杀生成好的server不是和前面的特征码重叠的地方,而是杀配置信息。
第一步、sys免杀
sys重新编译后,增加了输入表的函数,同时系统不同,造成很多地方不同于原特征,顺利通过卡巴、金山、小红伞等杀软。
第二步、svchost.dll免杀
特征码定位MultiByteToWideChar和"gh0st update"两个位置。这里是通过第3步map文件得出的。
卡巴怕加花指令, 这个函数MultiByteToWideChar的调用上,可以在这个函数前面随便加几句无效语句就可以通过卡巴杀软。
字符串调用"gh0st update" ,这个是用于更新用的 ,如果不要在线更新,直接把这个语句所在代码块删除;嘿嘿,其实搜索工程替换这个字符串为其他的字符串就可以了^_^,这个方法同时可以过金山杀软。
第三步、server免杀
卡巴定位在最后的配置信息,采取跳转显然是不行的,采用加花的办法,在写入AAAAAA配置信息之前,随便写些东西,就可以做server免杀。
卡巴免杀完成!
B、Avast免杀
最新的avast杀软再查杀1下,杀install.exe和svchost.dll(也就是杀生成的文件和其中的资源文件),接着做它的源码免杀。
定位在特征字符串%02d/%02d/%02d和“SYSTEM\CurrentControlSet\Services\%s”两个地方。
解决方案:
1、svchost.dll的特征码定位在键盘记录KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函数。特征字符串%02d/%02d/%02d,也就是我们看到键盘记录的日期,修改之,修改的方法很多,将其改为[%d/%d/%d %d:%d:%d] ,编译即可通过avast杀软。
2、install的特征码定位在“SYSTEM\CurrentControlSet\Services\%s”,对应文件是install.cpp里的InstallService函数,修改大小写,编译即可通过免杀。
五、添加垃圾代码的小方法
垃圾代码要移动特征码所在的位置,不要跑到堆栈中了,这样的代码没有用。可以采取添加for循环,做计数,简单统计,采用局部变量,不改变后面的逻辑为宜。
添加输出表的方法:
有杀输出表的,可以在生成的svchost.dll上添加空函数 ,但是每次编译都要修改1次资源 ,其实我们在源码上添加如下语句:
extern "C" __declspec(dllexport) bool JustTempFun();//声明
……
extern "C" __declspec(dllexport) bool JustTempFun() //实现
{
return false;
}
编译后,输出表就被改变了,有的杀软就可做到代码免杀。
六、gh0st自动生成6to4ex.dll的修改
看到好多站友提问自动生成6to4ex.dll的问题,有热心站友也提出了自己的见解 ,我感觉有些人提出的解决方案不完全正确,有可能造成刚入手人误解,我根据自己的理解说明1下。
gh0st服务端是通svchost -netsvcs启动的,所以程序要利用netsvcs 服务,服务端也就是根据netsvcs生成的,故不能说服务端生成是随机的,相对于大多数系统来讲,基本是固定的,下面看分析。
查看install.cpp里面的InstallService()方法,首先遍历HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Svchost中的服务项,查找到一个服务后,程序采取替换服务的方法,将原服务删除,然后生成对应服务项+ ex.dll的文件替换原服务,6to4服务一般排在第一位,6to4服务是一种自动构造隧道的方式,作用在于只需要一个全球惟一的IPv4地址便可使得整个站点获得IPv6 的连接,这个服务对一般人来讲,基本闲置,所以我们的程序就把6to4服务给替换掉,同时在windows\system32\目录下生成 6to4ex.dll,以后启动就是6to4ex了,如果把这个服务跳过去,就依次向下生成Ias、Iprip等服务啦,如果netsvcs项没有可以替换的服务,则程序将自己添加1个服务,名称就是由 AddsvchostService()方法产生的netsvcs_0x%d。
这样说不知道关心服务名称的明白了不?
这个不能说是技术问题,但是小技巧问题可以从这里产生,我不知道其他人的360是怎么过的,但是我觉得可以提示1下的是,如果是360默认系统安全的服务,它肯定不会报不安全,替换闲置的系统安全的服务则通过360的效果要好的多
本文来自: 华夏黑客同盟论坛 本文详细地址:http://bbs.77169.com/read.php?tid=255676
一、环境配置
编译环境一定要配置好:DDK+SDK+VC6,DDK用来编译sys文件的,SDK+VC6是用来编译工程的,配置部分比较简单,网上有很多资料,这里不再详述,有兴趣的朋友也可以查看DDK和SDK的相关帮助。
二、特征码定位简述
杀毒软件查杀木马的原理基本是根据特征查杀的,被查杀的部分我们称之为特征码,所以我们可以利用特征码定位工具MyCLL定位出病毒的特征码位置,定位工具原理是将被扫描木马分块,利用分段填充的方式,匹配杀软的特征值,找到杀软查杀病毒的位置。
定位出特征码,如何反向找到源码中的对应位置呢?请看下面分析,
三、二进制文件与源码定位之map文件利用
map文件是二进制和源码之间对应的一个映射文件。
我们假设根据第三步我们定位出了病毒的特征码:
病毒名称 特征码位置 内存地址
svchost.dll 000038AA_00000002 100044AA
svchost.dll 00005F98_00000002
第一步设置VC编译环境生成Map文件。
在 VC 中,点击菜单“Project -> Settings”选项页(或按下 Alt+F7),选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要点击 Link 选项卡,选中“Generate mapfile”复选框,并在最下面的 Project Options 里面输入:/mapinfo:lines,表示生成 MAP 文件时,加入行信息。设置完成。
第二步编译VC工程,设置活动工程编译即可,这个不用说明。这个步骤完成后,在release(或debug)目录,多了一个.map文件(比如svchost.map)。
第三步打开map文件(用UE或文本编辑器打开都行),形式如下:
(begin)
Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008)
Preferred load address is 10000000
---------------------------------------------------------------------------1----(为方便说明,wrw添加)
Start Length Name Class
0001:00000000 00010a50H .text CODE
0001:00010a50 00000485H .text$x CODE
0002:00000000 000004c8H .idata$5 DATA
......
0003:00000010 00000004H .CRT$XIZ DATA
0003:00000020 00001a50H .data DATA
0003:00001a70 00000688H .bss DATA
0004:00000000 000000a8H .rsrc$01 DATA
0004:000000b0 00000cf0H .rsrc$02 DATA
----------------------------------------------------------------------------2---(为方便说明,wrw添加)
Address Publics by Value Rva+Base Lib:Object
0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj
0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj
0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f Audio.obj
0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj
0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj
......
0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f FileManager.obj
0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f FileManager.obj
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f FileManager.obj
0001:00003730 ?CreateLocalRecvFile@CFileManager@@AAEXPAE@Z 10004730 f FileManager.obj
......
----------------------------------------------------------------------------3---(为方便说明,wrw添加)
Line numbers for .\Release\FileManager.obj(E:\vtmp\gh0st3src\Server\svchost\common\FileManager.cpp) segment .text
17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0
25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee
77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d
......
532 0001:0000340f 534 0001:00003414 537 0001:00003428 540 0001:00003440
546 0001:0000345d 547 0001:00003487 548 0001:00003490 549 0001:00003492
551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554 0001:000034d4
558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564 0001:00003506
......
(end)
我们看下,定位svchost.dll 的第一个特征码内存地址为:100044AA,在第2块中,我们可以找到RVA+BASE与之很接近的是
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
这样我们可以定位到FileManager.cpp中的FixedUploadList函数,是不是范围缩小了?
下面我们再缩小代码行
利用这个公式:特征码行偏移 = 特征码地址(Crash Address)- 基地址(ImageBase Address)- 0x1000
看起来好像很难,其实很简单,我们将100044AA去掉内存基址10000000,再减1000,因为PE很多从1000开始,可以得到代码偏移地址为34AA。到第3块中找对应的代码行。
偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中间,也就是551行和552行中间,我们到源程序中查找第551行:
wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash);
这样就定位出源代码了,要怎么修改就怎么修改它就可以了。
四、实战免杀
A、卡巴免杀
首次编译后,先做卡巴的免杀。卡巴杀sys文件和dll,当然也就杀包装它们的install.exe,最后卡巴还杀生成的sever,我这里说杀生成好的server不是和前面的特征码重叠的地方,而是杀配置信息。
第一步、sys免杀
sys重新编译后,增加了输入表的函数,同时系统不同,造成很多地方不同于原特征,顺利通过卡巴、金山、小红伞等杀软。
第二步、svchost.dll免杀
特征码定位MultiByteToWideChar和"gh0st update"两个位置。这里是通过第3步map文件得出的。
卡巴怕加花指令, 这个函数MultiByteToWideChar的调用上,可以在这个函数前面随便加几句无效语句就可以通过卡巴杀软。
字符串调用"gh0st update" ,这个是用于更新用的 ,如果不要在线更新,直接把这个语句所在代码块删除;嘿嘿,其实搜索工程替换这个字符串为其他的字符串就可以了^_^,这个方法同时可以过金山杀软。
第三步、server免杀
卡巴定位在最后的配置信息,采取跳转显然是不行的,采用加花的办法,在写入AAAAAA配置信息之前,随便写些东西,就可以做server免杀。
卡巴免杀完成!
B、Avast免杀
最新的avast杀软再查杀1下,杀install.exe和svchost.dll(也就是杀生成的文件和其中的资源文件),接着做它的源码免杀。
定位在特征字符串%02d/%02d/%02d和“SYSTEM\CurrentControlSet\Services\%s”两个地方。
解决方案:
1、svchost.dll的特征码定位在键盘记录KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函数。特征字符串%02d/%02d/%02d,也就是我们看到键盘记录的日期,修改之,修改的方法很多,将其改为[%d/%d/%d %d:%d:%d] ,编译即可通过avast杀软。
2、install的特征码定位在“SYSTEM\CurrentControlSet\Services\%s”,对应文件是install.cpp里的InstallService函数,修改大小写,编译即可通过免杀。
五、添加垃圾代码的小方法
垃圾代码要移动特征码所在的位置,不要跑到堆栈中了,这样的代码没有用。可以采取添加for循环,做计数,简单统计,采用局部变量,不改变后面的逻辑为宜。
添加输出表的方法:
有杀输出表的,可以在生成的svchost.dll上添加空函数 ,但是每次编译都要修改1次资源 ,其实我们在源码上添加如下语句:
extern "C" __declspec(dllexport) bool JustTempFun();//声明
……
extern "C" __declspec(dllexport) bool JustTempFun() //实现
{
return false;
}
编译后,输出表就被改变了,有的杀软就可做到代码免杀。
六、gh0st自动生成6to4ex.dll的修改
看到好多站友提问自动生成6to4ex.dll的问题,有热心站友也提出了自己的见解 ,我感觉有些人提出的解决方案不完全正确,有可能造成刚入手人误解,我根据自己的理解说明1下。
gh0st服务端是通svchost -netsvcs启动的,所以程序要利用netsvcs 服务,服务端也就是根据netsvcs生成的,故不能说服务端生成是随机的,相对于大多数系统来讲,基本是固定的,下面看分析。
查看install.cpp里面的InstallService()方法,首先遍历HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Svchost中的服务项,查找到一个服务后,程序采取替换服务的方法,将原服务删除,然后生成对应服务项+ ex.dll的文件替换原服务,6to4服务一般排在第一位,6to4服务是一种自动构造隧道的方式,作用在于只需要一个全球惟一的IPv4地址便可使得整个站点获得IPv6 的连接,这个服务对一般人来讲,基本闲置,所以我们的程序就把6to4服务给替换掉,同时在windows\system32\目录下生成 6to4ex.dll,以后启动就是6to4ex了,如果把这个服务跳过去,就依次向下生成Ias、Iprip等服务啦,如果netsvcs项没有可以替换的服务,则程序将自己添加1个服务,名称就是由 AddsvchostService()方法产生的netsvcs_0x%d。
这样说不知道关心服务名称的明白了不?
这个不能说是技术问题,但是小技巧问题可以从这里产生,我不知道其他人的360是怎么过的,但是我觉得可以提示1下的是,如果是360默认系统安全的服务,它肯定不会报不安全,替换闲置的系统安全的服务则通过360的效果要好的多
本文来自: 华夏黑客同盟论坛 本文详细地址:http://bbs.77169.com/read.php?tid=255676
展开全部
http://bbs.eyuyan.com/dispbbs.asp?BoardID=124&ID=138839&replyID=&skin
《易语言远程控制技术教程》
(2007年10月第一版)
前 言
利用远程控制技术对企业管理,可加快我国经济建设的需要。易语言以其易学易用功能完善的功能,从而为企业管理中的远程控制提供了基础的编程条件。
本教程从一个基本面说明了远程控制技术的编程环节,可能大家比较感兴趣的是双向通讯自动上线技术、网络通讯协议、内存压缩图片技术、TELNET超级终端等功能,本教程均提供了例程。高级的远程控制技术应用请大家继续学习WINSOCK,API应用,端口映射技术等。
对于破坏国家正常经济秩序的黑客行为,本书是严厉批评的。由于黑客技术的发展,远程控制被少数人利用,对国民生产产生了不良的后果。本教程不得不接触到远程控制这个方面,但仅以讨论的形式为大家介绍,并不进行细致的介绍,以让大家对此类黑客技术有所提防。
由于本教程中,某程序可能即包含了服务器组件,也包含了客户组件,因此如果用外部流行的“服务端/客户端”提法很容易混淆,因此本书将主动进行控制管理的一方称为:“主控方”,编写的程序为:“主控端”;将被动接受控制的一方称为:“受控方”,编写的程序为:“受控端”。
本教材个人可打印一份细看,各兄弟网站可自由转载而不用事先打招呼。版权所有,不得批量印刷即可。
作者还要说的话:本教程用了我两个月的时间写完,前期收集例程及写例程用了我更多的时间,特别辛苦。远程控制是把两刃剑,可以好好用,也可能造成不好的影响,还好回头再一看教材后,感觉对于企业内部管理应用还是非常不错的,可以提高中国中小企业的管理水平,但不可能制作成类似于灰鸽子那样的破坏功能,本书没有提供这样的技术,也请大家自重,不要写破坏性的程序。
本书使用到大量的例程,足有200MB,还好,书中我基本都提供了下载链接,如果书中没有列出的例程,请大家跟贴指出来,我会补上。我觉得最好的学习方法是先将这些例程收集全了,再一个一个打开看看,基本上就能明白了。
目 录
第一课.远程控制原理 5
1.企业管理的需要 5
2.介绍相关管理工具 5
3.组件简介 7
第二课.组件选择 8
1.数据报 8
2.服务器/客户组件 9
3.网络通讯支持库 9
4.保密通讯支持库 10
5.远程服务支持库 11
6.网络传送支持库 12
7.网络通讯支持库二 13
8.表1:网络通讯类支持库组件功能对比表 13
网络传送大文件丢包的原因 14
第三课.组件构成 15
1.用例图1:通讯类(易鸽子,局域网寻呼机,方舟千里眼) 15
2.用例图2:聊天室类 15
3.用例图3:远程控制 16
4.用例图4:远程数据服务(数据库) 16
5.采用单对组件 17
6.采用多种组件 17
7.组件搭配 17
8.表2:有易语言源码的远程控制软件对比 17
第四课.通讯协议 19
1.指令简介 19
2.指令应用 19
第五课.用户连接 20
1.连接方式 20
2.登录口令 21
3.身份验证,MAC和硬盘码 21
第六课.远程监视 21
1.“服务器/客户”组件通讯模式 21
2.内存压缩图片 21
3.“远程服务支持库” 22
第七课.自动上线 22
1.数据报广播自动上线 22
2.多对“服务器/客户”组件反向扫描上线 22
3.服务IP地址自动搜寻自动上线 22
4.将IP地址直接绑定在受控端 22
5.推举服务器 22
第八课.客户端功能 23
1.发送指令 23
2.对话聊天 23
3.监视屏幕 24
4.遥控功能 26
5.了解信息及修改信息 27
5.TELNET超级终端 27
6.文件传输 28
7.鼠标键盘录制 29
8.隐藏进程 29
9.开机启动运行 30
10.正常关机 30
11.多用户识别 31
12.不重复运行 31
13.系统服务权限 31
14.其他功能 31
第九课.服务端功能 31
1.安全性保证 31
2.用户列表信息 33
3.数据库操作 35
4.自动生成EXE 37
5.跨网远程 40
第十课.捆绑与免杀 40
1.捆绑 40
2.免杀 40
第十一课.打造超小受控端 41
1.请使用斩月工具,去掉易语言的核心支持库。 41
2.尽量使用API,这样不带有大量的支持库,体积就小了。 42
第十二课 一个实例的分析 42
1.设计文档 42
激活客户端过程 43
客户端上线过程 43
2.开机口令 43
3.用户列表/选择用户 44
4.发送指令 44
5.激活用户 45
6.发送文件 46
《易语言远程控制技术教程》
(2007年10月第一版)
前 言
利用远程控制技术对企业管理,可加快我国经济建设的需要。易语言以其易学易用功能完善的功能,从而为企业管理中的远程控制提供了基础的编程条件。
本教程从一个基本面说明了远程控制技术的编程环节,可能大家比较感兴趣的是双向通讯自动上线技术、网络通讯协议、内存压缩图片技术、TELNET超级终端等功能,本教程均提供了例程。高级的远程控制技术应用请大家继续学习WINSOCK,API应用,端口映射技术等。
对于破坏国家正常经济秩序的黑客行为,本书是严厉批评的。由于黑客技术的发展,远程控制被少数人利用,对国民生产产生了不良的后果。本教程不得不接触到远程控制这个方面,但仅以讨论的形式为大家介绍,并不进行细致的介绍,以让大家对此类黑客技术有所提防。
由于本教程中,某程序可能即包含了服务器组件,也包含了客户组件,因此如果用外部流行的“服务端/客户端”提法很容易混淆,因此本书将主动进行控制管理的一方称为:“主控方”,编写的程序为:“主控端”;将被动接受控制的一方称为:“受控方”,编写的程序为:“受控端”。
本教材个人可打印一份细看,各兄弟网站可自由转载而不用事先打招呼。版权所有,不得批量印刷即可。
作者还要说的话:本教程用了我两个月的时间写完,前期收集例程及写例程用了我更多的时间,特别辛苦。远程控制是把两刃剑,可以好好用,也可能造成不好的影响,还好回头再一看教材后,感觉对于企业内部管理应用还是非常不错的,可以提高中国中小企业的管理水平,但不可能制作成类似于灰鸽子那样的破坏功能,本书没有提供这样的技术,也请大家自重,不要写破坏性的程序。
本书使用到大量的例程,足有200MB,还好,书中我基本都提供了下载链接,如果书中没有列出的例程,请大家跟贴指出来,我会补上。我觉得最好的学习方法是先将这些例程收集全了,再一个一个打开看看,基本上就能明白了。
目 录
第一课.远程控制原理 5
1.企业管理的需要 5
2.介绍相关管理工具 5
3.组件简介 7
第二课.组件选择 8
1.数据报 8
2.服务器/客户组件 9
3.网络通讯支持库 9
4.保密通讯支持库 10
5.远程服务支持库 11
6.网络传送支持库 12
7.网络通讯支持库二 13
8.表1:网络通讯类支持库组件功能对比表 13
网络传送大文件丢包的原因 14
第三课.组件构成 15
1.用例图1:通讯类(易鸽子,局域网寻呼机,方舟千里眼) 15
2.用例图2:聊天室类 15
3.用例图3:远程控制 16
4.用例图4:远程数据服务(数据库) 16
5.采用单对组件 17
6.采用多种组件 17
7.组件搭配 17
8.表2:有易语言源码的远程控制软件对比 17
第四课.通讯协议 19
1.指令简介 19
2.指令应用 19
第五课.用户连接 20
1.连接方式 20
2.登录口令 21
3.身份验证,MAC和硬盘码 21
第六课.远程监视 21
1.“服务器/客户”组件通讯模式 21
2.内存压缩图片 21
3.“远程服务支持库” 22
第七课.自动上线 22
1.数据报广播自动上线 22
2.多对“服务器/客户”组件反向扫描上线 22
3.服务IP地址自动搜寻自动上线 22
4.将IP地址直接绑定在受控端 22
5.推举服务器 22
第八课.客户端功能 23
1.发送指令 23
2.对话聊天 23
3.监视屏幕 24
4.遥控功能 26
5.了解信息及修改信息 27
5.TELNET超级终端 27
6.文件传输 28
7.鼠标键盘录制 29
8.隐藏进程 29
9.开机启动运行 30
10.正常关机 30
11.多用户识别 31
12.不重复运行 31
13.系统服务权限 31
14.其他功能 31
第九课.服务端功能 31
1.安全性保证 31
2.用户列表信息 33
3.数据库操作 35
4.自动生成EXE 37
5.跨网远程 40
第十课.捆绑与免杀 40
1.捆绑 40
2.免杀 40
第十一课.打造超小受控端 41
1.请使用斩月工具,去掉易语言的核心支持库。 41
2.尽量使用API,这样不带有大量的支持库,体积就小了。 42
第十二课 一个实例的分析 42
1.设计文档 42
激活客户端过程 43
客户端上线过程 43
2.开机口令 43
3.用户列表/选择用户 44
4.发送指令 44
5.激活用户 45
6.发送文件 46
参考资料: http://bbs.eyuyan.com/dispbbs.asp?BoardID=124&ID=138839&replyID=&skin
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询