当前位置:首页 » 操作系统 » vc远控源码

vc远控源码

发布时间: 2022-02-16 06:46:07

Ⅰ 我有VC简单远程控制代码 一改怎么用 请给位高手指点

2个解决办法。
1.工程-》属性-》C/C++-》代码生成-》运行时库:修改成: 多线程调试(/MTd); (release版本也修改成 多线程(/MT)

2.工程-》属性-》常规-》MFC的使用:修改为:在静态库中使用 MFC
方法2不一定管用,PC机上的MFC(相对于EVC而言)程序都是多线程的(不信你照2修改试试,会出现找不到_beginthread函数的定义),必须设置多线程版本的运行时库。也就是照1的设置

大哥多给点分吧

Ⅱ 求一加壳的vc源代码

看这里,直接下在源代码.
<br><a href="http://bbs.pediy.com/showthread.php?t=43229" target="_blank">http://bbs.pediy.com/showthread.php?t=43229</a>
<br>
<br>源码在vc7+xp-sp2下编译通过
<br>原理:对Pe文件的.data节,.text节进行XOR加密,然后将带解密的Loader写入文件头和第一个段的开头之间,修改Entry Point使其指向Loader.
<br>测试用例:使用vc6.0自动生成的mfc对话框应用程序。
<br>参考文献:(1)def源码
<br> (2)黑客调试技术揭秘
<br> (3)yoda's protector源码

稍微看了一下,这个做得并不复杂,看代码应该可以整理出思路来的

Ⅲ vs2010可以编译的远控有哪些

自己编写 太麻烦了 现在 网上那些远控源码都不免杀了 你可以去下载个 云远控 免杀的 效果很好

Ⅳ VC++的源代码在哪可以找啊推荐几个论坛~

串行通讯的代码和资料,要到这里来找:
http://www.gjwtech.com/serialcomm.htm

Ⅳ gh0st远控需要学C++还是VC++

gh0st远控是用c++语言在vc++编译器中编写的, �0�2所以要学c++,免杀 �0�2好像还要用汇编修改吧,

Ⅵ 远控源码免杀需要什么工具

远控软件gh0st源码免杀

远控软件gh0st3.6开源了,开源意味着我们可以在此基础上进行二次开发,同时也意味着杀软可以较容易的查杀该款远控木马,既然要利用,我们就做好源码基础上的木马免杀工作。

好久没有来博客了,我把免杀这部分整理了一下,先抛一砖头,有兴趣的朋友可以接着做,也可以和本人交流。


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

Ⅶ 求C++远程控制程序的源码

没有c++只有vc++…另外你匿名怎么给你!?如果要VC++的可以网络:Gh0st3.6,开源的远控,网上有各种教程。

Ⅷ 急求VC源代码

(1)

#include<iostream>
using namespace std;

int main()
{
float num1,num2;
char ch;

begin:

cout<<"请输入第1个数:\n";
cin>>num1;
cout<<"请输入运算符:\n";
cin>>ch;
cout<<"请输入第2个数:\n";
cin>>num2;

switch(ch)
{
case '+':
cout<<"结果:"<<num1+num2<<endl;
break;
case '-':
cout<<"结果:"<<num1-num2<<endl;
break;
case '*':
cout<<"结果:"<<num1*num2<<endl;
break;
case '/':
if(int(num2)!=0)
{
cout<<"结果:"<<num1/num2<<endl;
}
else
{
cout<<"除数不能为0,请重新输入.\n";
goto begin;
}
break;

default:
cout<<"你输入的运算符错误,请重新输入.\n";
goto begin;
}
getchar();
return 0;
}
(2)

#include <iostream>
#include<string>
using namespace std;

int main()
{
char num1[50];
char num2[50];
char ch;
int n=0;
int i=0;
float count=0;
string inStr;

begin:
cout<<"请输入:";
cin>>inStr;

memset(num1,0,50);
memset(num2,0,50);

for(i=0; inStr[i]!='\0'; i++)
{
if(inStr[i]=='+' ||inStr[i]=='-' ||inStr[i]=='*' ||inStr[i]=='/' )
{
break;
}
else
{
num1[i]=inStr[i];
}
}

ch=inStr[i];
i++;

for(; inStr[i]!='\0'; i++)
{
if(inStr[i]=='+' ||inStr[i]=='-' ||inStr[i]=='*' ||inStr[i]=='/' )
{
break;
}
else
{
num2[n]=inStr[i];
n++;
}
}

switch(ch)
{
case '+':
count=float(atoi(num1))+float(atoi(num2));
break;
case '-':
count=float(atoi(num1))-float(atoi(num2));
break;
case '*':
count=float(atoi(num1))*float(atoi(num2));
break;
case '/':
if(atoi(num2)!=0)
{
count=float(atoi(num1))/float(atoi(num2));
}
else
{
cout<<"除数不能为0"<<endl;
goto begin;
}
break;
}

cout<<"结果是:"<<count<<endl;
}
祝你好运了!!!!!!!!!!!!!

Ⅸ VC写反弹高级远程控制!

木马就是了

热点内容
海康威视存储卡质量如何 发布:2024-09-19 08:55:35 浏览:938
python3默认安装路径 发布:2024-09-19 08:50:22 浏览:514
环卫视频拍摄脚本 发布:2024-09-19 08:35:44 浏览:416
sqlserveronlinux 发布:2024-09-19 08:16:54 浏览:255
编程常数 发布:2024-09-19 08:06:36 浏览:951
甘肃高性能边缘计算服务器云空间 发布:2024-09-19 08:06:26 浏览:161
win7家庭版ftp 发布:2024-09-19 07:59:06 浏览:716
数据库的优化都有哪些方法 发布:2024-09-19 07:44:43 浏览:268
知乎华为编译器有用吗 发布:2024-09-19 07:32:20 浏览:617
访问虚拟机磁盘 发布:2024-09-19 07:28:13 浏览:669