Gh0st整理资料1
题首
Gh0st是一款开源的远程控制软件。界面友好,性能高效。网上流传很多版本,比如红狼,饭客,败笔,大灰狼版本以及多如牛毛的个人修改的如外星人,Drat等个人修改版本。但内核都是基于Gh0st3.6修改而成的。
Gh0st3.6下载地址见 http://huaidan.org/archives/2010.html
截止今天(2013年8月12日11:03:29),我能找到的最新版的Gh0st系列的源代码是 2013年1月份左右的《大灰狼远程》,还有《Gh0st2013》等。地址就不发出来了,大家可以在网络上搜索得到。
开篇明义:
本人水平十分一般,不敢班门弄斧,写这个系列原意是想记录在学习Gh0st中得到的一些感想和一些疑惑,正所谓好码共分享,疑义相与析。所以请高手绕路。
关于Gh0st代码的变迁:
1.服务端的运行方式
2010年时饭客论坛放出一份代码 《gh0st3.6饭客论坛免杀金牌版》
大家可以在我的资源里下载。
http://download.csdn.net/detail/witch_soya/4979548
大家可以看到这份代码里,服务端是采用了dll注入的形式,exe只是作为一个loader,大致的流程就是服务端的exe运行后就会释放一个dll,然后这个dll会执行所有的服务端的功能,而exe本身会自删除。在生成服务端的时候,只需要通过更新资源的方式去更新exe里面的动态库就可以了。
但是在网络最新找到的代码Gh0st2013里,几乎都是采用了单exe的方式运行。
因为我对于免杀之类并不精通。所以有如下疑问
Question1.为什么现在都采用单exe运行了,dll服务端不是更隐蔽吗?
2.客户端的界面修改
在Gh0st3.6的很多个版本的代码中,界面库采用了cj60lib 。这个库在用VS2010以上的版本编译时候会有很多重定义的错误。后来在《大灰狼远程控制》的代码里已经改为XTToolkitPro.lib的界面库了。还有《PcRat》的源代码中还采用了一种界面库Skin+ 。
界面欣赏
1 开源《Gh0st3.8》 --这个是网络上找到的Gh0st3.8的代码,我去掉了CJ60.lib界面库,返璞归真的效果。(by the way.大家不要找Gh0st3.75的代码了,都是骗人的,只有客户端,没有服务端)
2.我自己的Aero远程控制(还在写ing...其中遇到很多问题,所以在这里不敢敝帚自珍,请求SOS国际援助.^_^)
主界面
因为之前用一些界面库总是各种掣肘,自己写个界面库又没那个本事。后来就一不做二不休,全部采用gdi+贴图的方式来做的界面。比较花哨,完全是当做写着玩,所以没有考虑很多基于性能的因素。
有主机上线(这里我暂时屏蔽了右下角仿腾讯的弹出窗。)
我比较喜欢《上兴远程控制》,它将主程序和生成服务端分为两个独立程序来做的,我觉得这样挺好,这一点我采用了他的思路。采用了一种很2的办法来实现。就是生成服务端和修改服务端图标的代码用C++写在了一个动态库里,然后服务端生成工具用WPF来做的。如图
因为我这款远程控制的主要目标是尽可能用上自己所学到的编程技术,所以在旁人看来未免有些华而不实。这点我也受教了。
顺便贴上比较欣赏的上兴远程控制的界面。
还有其他的参考,如外星人,灰鸽子等等知名非知名软件。敬谢不敏。在接下来的回目中尽自己所知来剖析Gh0st的运行机理。
/*********************************************************************************************************************************************************
2013年8月12日11:48:24 Witch_Soya
**********************************************************************************************************************************************************
Gh0st整理资料1的更多相关文章
- 1、Android项目框架搭建 (分析需求、整理资料)
闲来无事.想搭个框架试试 分析一般应用 将资料整理整理 粗略统计 须要下面资料 1.android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.Vi ...
- AngularJS 整理资料
AngularJS是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用方面的不足,其通过使用指令(directives)结构来扩展HTML词汇,使开发者可以使用HTML来 ...
- WEB安全工程师整理资料
安全产品 NESS Nmap AWVS Burp APPScan chopper sqlmap kali linux 具体的教程可以在SEcWiki 上搜索 使用公开的漏洞 ...
- Android 6.0 新特性 整理 资料来自网络
Android 6.0新特性 Runtime Permissions Doze and App Standby Apache HTTP Client Removal BoringSSL Access ...
- Unity 3d C#和Javascript脚本互相调用 解决方案(非原创、整理资料,并经过实践得来)
Unity 3d C#和Javascript脚本互相调用 解决方案 1.背景知识 脚本的编译过程分四步: 1. 编译所有 ”Standard Assets”, “Pro Standard Assets ...
- js window对象属相和方法相关整理资料
window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...
- AJPFX循环结构整理资料
Java语言基础(循环结构概述和for语句的格式及其使用)* A:循环结构的分类 * for,while,do...while * B:循环结构for语句的格式:* ...
- android开发之动画的详解 整理资料 Android开发程序小冰整理
/** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec.cc * * 微博:http://weibo.com/mcxiaob ...
- C语言零基础入门难发愁,那就快来看看这篇基础整理资料吧
C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,使小伙伴对c语言有个初步认识. 例1:计算两个整数之和的c程序: #include main() { in ...
随机推荐
- [Python网络编程]一个简单的TCP时间服务器
服务器端: 1.创建一个面向网络的TCP套接字对象socket, 2.绑定地址和端口 3.监听 4.当有客户端连接时候,接受连接并给此连接分配一个新的套接字 5.当客户端发送空信息时候,关闭新分配的套 ...
- 使用Python发送HTML格式的邮件(收到的邮件有发送方才是正解)
发送html格式的和普通文本格式差不多,只是MIMEText(content,"html","utf-8"))与MIMEText(content,"p ...
- zoj 2587 判断最小割的唯一性
算法: 先求出残量网络,计算出从src能够到的点集A,再求出能够到dst的点集B,如果所有点都被访问到了,那么割就是唯一的,即(A,B),否则(A,V-A)和(V-B,B)都是最小割. (注意因为割的 ...
- bzoj 3252: 攻略 -- 长链剖分+贪心
3252: 攻略 Time Limit: 10 Sec Memory Limit: 128 MB Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神 ...
- Codecademy python
#1 print "Welcome to Python!" #2 my_variable = #3 # Set the variables to the values listed ...
- Sql 先进先出计算积分
先建表,插入测试数据 --正积分表 CREATE table tb1 ( ) NOT NULL, ) NOT NULL, ) NULL, [point] [int] NULL ) ) ) ) ) ) ...
- 云计算大会有感—MapReduce和UDF
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.參会有感 首先还是非常感谢CSDN能给我票,让我有机会參加这次中国云计算峰会.感觉不写点什么对不 ...
- php 利用fsockopen GET/POST 提交表单及上传文件
1.GET get.php <?php $host = 'demo.fdipzone.com'; $port = 80; $errno = ''; $errstr = ''; $timeout ...
- linux下安装MYSQL详细配置(转)
#tar zxvf mysql-5.0.18.tar.gz#cd mysql-5.0.18 #./configure --prefix=/usr/local/mysql --with-chars ...
- iOS中安全结束 子线程 的方法
一个典型的结束子线程的方法: 用 isFinished 检测子线程是否被完全kill掉 -(IBAction)btnBack:(id)sender { //释放内存 仅仅remove 并不会触发内 ...