PcShare 最终版本(企业定做版)编译流程

Posted by JenI on 2018-10-13 00:00:00+08:00

前言

PcShare是一款功能强大的远程管理软件,可以在内网、外网任意位置随意管理远程主机,有超强的隐藏和自我修复等功能。2014年,作者(网名无可非议)转去研究 Linux 下的 rootkit 相关技术,便开源了 PcShare 最终版本的源码供网友学习。

最终版本的源码很早之前我就下了一份放在电脑里,但是因为一直没用到,也就没仔细研究,正巧最近有朋友需要用编译后的程序在虚拟机做实验,但是编译环境有一点问题,编译总是不通过,于是我就帮他编译了一下。过程也是充满了坎坷,毕竟没有接触过开发,所以查了很多资料才编译成功,这里记录一下,希望能帮到有同样问题的人,过程中使用的文件直接复制文件名谷歌就可以了,一般都可以下载的到,这里就不提供了,如果实在找不到,也可以邮件联系我.

邮箱: [email protected]

注:本文只用作技术交流,编译后的软件也仅供学习测试使用,请勿将其用于非法用途

编译环境搭建

作者在源码包中提到了 PcShare 是在 VC6.0 + 最新SDK + SP6 + 界面库 + 特定资源的环境下编译的,为了尽量减少问题,先把环境问题搞定。

首先虚拟机安装操作系统和 VMtools,我这里使用了专业版 XP with SP3:

系统镜像:zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070
安装序列号:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8
批量许可证:MRX3F-47B9T-2487J-KWKMF-RPWBY

pcshare-compile-1

虚拟机安装完成后挂载 VC++6.0 的镜像文件,安装英文版 VC++6.0

pcshare-compile-2

打开安装程序后一路下一步,直到程序安装完毕。之后会提示安装 MSDN,直接下一步跳过就可以了。安装结束后,将 VC++6.0.with.SP6.ISO 镜像内的 /VC6EN/VC98/MFC/LIB/UAFXCW.LIB 文件复制到 C:/Program Files/Microsoft Visual Studio/VC98/Lib 内

pcshare-compile-3

安装 DirectX9,解压 directX9.0b.zip,运行 dx90bsdk.exe,点击 Unzip,按默认设置完成资源文件的安装。安装完成后进入 C:/DXSDK/Samples/C++/DirectShow/BaseClasses 目录,双击 baseclasses.dsw 文件,使用 Visual C++ 编译 DirectShow 的标准链接库(进入 Visual C++ 后点击 build 按钮)

pcshare-compile-4

然后在 Visual C++ 链接库内加入新的目录。点击菜单 Tools => Options => Directory,在 Include files 内添加:

C:\DXSDK\Include
C:\DXSDK\Samples\C++\DirectShow\BaseClasses
pcshare-compile-5

在 Library files 内添加:

C:\DXSDK\Lib
C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug_Unicode
pcshare-compile-6

安装 Xtreme Toolkit Pro v9.60。解压 PCSHARE最终版本源代码.zip,将 PCSHARE最终版本源代码/界面资源/[XTreme.Toolkit.9.6.MFC].Xtreme.Toolkit.Pro.v9.60 文件夹复制到 C 盘根目录。切换到 C:/[XTreme.Toolkit.9.6.MFC].Xtreme.Toolkit.Pro.v9.60 后,修改 xtreme.reg 内容为:

REGEDIT4
[HKEY_CURRENT_USER\Software\Codejock Software\Xtreme Toolkit Pro v9.60]
"Installation Directory"="C:\\[XTreme.Toolkit.9.6.MFC].Xtreme.Toolkit.Pro.v9.60"

运行 xtreme.reg 导入注册表项后运行 Deploy.exe,Unicode Support 选 Both,其余全选。

pcshare-compile-7

这里如果终端报错

fatal error LNK1104: cannot open file "mfc42u.lib"

是因为默认安装的 VC 缺少对 Unicode 的支持,将 VC++6.0.with.SP6.ISO 镜像内 /VC6EN/VC98/MFC/LIB 下的所有文件复制到 C:/Program Files/Microsoft Visual Studio/VC98/MFC/Lib 内,提示重复覆盖或跳过都可以,/VC6EN/VC98/DEBUG/mfc42ud.dll 文件复制到 C:/WINDOWS/system32 内,然后重新运行 Deploy.exe。等待编译完成后 XTreme.Toolkit.9.6.MFC 应该已经被添加到了 VC 的链接库里了。

pcshare-compile-8

虚拟机挂载 Windows XP SP2 SDK For VC6.iso ,安装 SDK。安装完成后在 VC 里添加链接库。在 Executable files 里添加:

C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\BIN
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\BIN\WINNT
pcshare-compile-9

在 Include files 里添加:

C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\INCLUDE
pcshare-compile-10

在 Library files 里添加:

C:\PROGRAM FILES\MICROSOFT PLATFORM SDK FOR WINDOWS XP SP2\LIB
pcshare-compile-11

PCSHARE最终版本源代码/界面资源/tool/QQWry 复制到 PCSHARE 最终版本源代码/企业定做/PcShare/res/ 下

pcshare-compile-12

修改 PCSHARE最终版本源代码/企业定做/PcShare/PcShare.rc ,959 行改为:

IPDATA                  MOD     DISCARDABLE     "res\\QQWry.dat"
pcshare-compile-13

打开 PCSHARE最终版本源代码/企业定做/PcShare/PcShare.dsw 项目文件,修改 MyGlobalFuc.cpp 文件:

//查看是否为文件
TCHAR* pFind = StrRChr(m_Path, NULL, _T('\\')); // 添加这句
pr = StrChr(ps, _T('\\')); // 在这句代码上面添加
pcshare-compile-14

打开 VC 的 Project => Setting 选项,将 General 改为 Use MFC in a Static Library。

pcshare-compile-15

点击 Build 开始编译,编译完成后会在 PCSHARE最终版本源代码/企业定做/bin 下生成 PcShare.exe。

打开 PCSHARE最终版本源代码/企业定做/PcLKey/PcLKey.dsw 项目文件,修改 MyFunc.h,注释掉视频监控模块:

//#include <streams.h>

点击 Build 开始编译,编译完成后会在 PCSHARE最终版本源代码/企业定做/bin/update 下生成 PcLkey.dll。

打开 PCSHARE最终版本源代码\企业定做\PcMain/PcMain.dsw 项目文件,修改 MyFunc.h,注释掉视频监控模块(需注释两处):

//#include <streams.h>

修改 MyVideoTrans.h, 注释掉以下两行

//CComQIPtr< IVideoWindow, &IID_IVideoWindow > pWindow;
//CComQIPtr< IMediaControl, &IID_IMediaControl > pControl;

修改 MyVideoTrans.cpp,以下三个函数内的代码全部注释,只保留返回值:

1. BOOL CMyVideoTrans::SetFormat(ICaptureGraphBuilder2* pBuilder, IBaseFilter* pCap, long lWidth, long lHeight, WORD iColorBit, __int64 iRate)
2. HRESULT CMyVideoTrans::InitStillGraph(int x, int y)
3. BOOL GetDefaultCapDevice( IBaseFilter ** ppCap )

修改后三个函数代码大致如下:

BOOL CMyVideoTrans::SetFormat(ICaptureGraphBuilder2* pBuilder, IBaseFilter* pCap, long lWidth, long lHeight, WORD iColorBit, __int64 iRate)   
{
    return TRUE;
}

HRESULT CMyVideoTrans::InitStillGraph(int x, int y)
{
    return 0;
}

BOOL GetDefaultCapDevice( IBaseFilter ** ppCap )
{
    return TRUE;
}

点击 Build 开始编译,编译完成后会在 PCSHARE最终版本源代码/企业定做/bin/update 下生成 PcMain.dll。

分别打开 PCSHARE最终版本源代码/企业定做/PcMake/PcMake.dsw 和 PCSHARE最终版本源代码/企业定做/PcStart/PcStart.dsw 进行编译。

至此就完成了对 PcShare 的编译,测试下是否可用:

pcshare-compile-16

同网段机器运行客户端后成功上线

参考

https://www.tenglongw.com/thread-668-1-1.html https://blog.csdn.net/joeblackzqq/article/details/10944005 https://blog.csdn.net/xxrhuanhuan/article/details/7646695


作者:   JenI   转载请注明出处,谢谢


Comments !