您的位置 首页 > 数码极客

知道特征码如何找基址

黑客协会:黑客进阶特征码修改源码免杀

一、如何查找特征码

查找特征码与代码的对应位置,是这篇文章首先需要了解的基础。为了方便我们查找,在编译的时候生成map文件,选择vc工程选项(project),在下拉菜单中选择设置(settings),或者你也可以按快捷键alt+f7;弹出工程设置对话框(project settings)。

在这篇文章中我不想一步一步解释我编写的C#代码,但是我会展示下它能够绕过杀毒软件,并且操作非常简单,而且实用。(黑客入门新手,没到进阶这阶段的 推荐书籍《网络黑白》某宝有)

首先说明一下:

1. 我是在三年前发现这个攻击方法的,当我在做免杀的时候我发现了很多都是以0x0地址开始的进程。在我的win7系统中这种恶意代码绕过了我的杀毒软件,只是在内存中可以找到,然后以系统权限运行。所以,当然是NSA干的咯!

2. 这并不意味着以0x0开始的进程都是进行恶意注入的。

就像刚才所说,我不会将我的”Na”代码分享出来,不过我会阐述下如何在C++,C#或者其他语言如何进行编写攻击poc。

下图中你可以看到当远程进程加载时发生了什么事情,他已经一步一步的展示出来。并且你可以使用C#或者其他语言提供的windowsAPI很简单的实现。

点击c/c++选项卡,在工程选项(projectoption)中输入/Zd,或者你可以在调试信息(debug info)下拉列表中选择line numbers only。

在连接(link)选项卡讲产生map文件(generate mapfile)打上勾。再在工程选项卡中写入/mapinfo:lines,最后确定。

用od打开文件点击插件弹出下拉菜单选择godup plugins,在其二级菜单中选择load abel。一般我们用myccl定位特征码,定位出特征码,然后导入od。myccl定位出的是文件特征码,而od中是内存地址。一般大家都会用一些地质转换工具把文件地址转换为内存地址再在od中查找,其实od已经给我们准备了这样的插件。在插件中选择olly advanced-option,在addtional options中将启用改进的ctrl+g功能勾上。

ctrl+g运行选中偏移量,在下拉列表中就可以选择要用的文件。例如在xxx出定位出的特征码载入汇编代码为call c在上面有call a,下面有call b,又或者有一些字串。根据这些信息,可以在vc中找相应信息比对,下面的实战中会详细说明。

二、如何定位特征码

我们一般手动定位出来的特征码有一些几种:定位到代码上,定位到字符串上,定位到输入表上(高启发的最爱,例如nod32和小红伞)。

(1)定位到代码

对于代码可以交换代码位置,等价代码替换,合并分离代码,添加花指令。

代码交换:例如int a;int b;定位的位置为int a,你可以换一下位置改成intb:int a:等价替换:例如char a[5]=”hello”;你可以改为char *p=”hello”;

合并分离代码:例如(中国黑客协会创始人花无涯);可以改为print(hello);分离就是其反过程。

添加花指令:例如直接在代码前后加nop。_asm{nop},nop数量随意。

如果不想定位的话,大家可以直接在代码中多出直接加花指令,是代码位置发生变化。即可达到免杀但是对字符串和输入表无效。所以大家在定为特征码之前在代码处先加一些花指令。

(2)定位到字符串

修改字串:现将其中几个字符修改,然后再将其修改过来。例如char *p=hell;你可以改为char*p=mello;p[0]=;

连接字串:将字串分离为两部分,然后再连接一下。例如char *p=hello;可以改为char *p=he;

strcat(p,llo);

字串加密:将字串加密一下,然后在解密。例如char *p=hello;可以将其改为char *p=gdkkn;

for(int i=0;i5;i+=)p[i]++;

翻转字串:例如有字符串为“hello”,你可以现将字串改为“olleh”,再用strrev将其翻转回来,strrev(“olleh”)最后输入结果就为hello。

字串修改应该还有别的方法,大家可以自由发挥。

(3)定位到输入表

定位到输入表可以用动态调用或者延迟加载。例如定位到输入表的MessageBox,你可以将其改为typedef int(WINAPI *pMessageBoxA),pMessageBoxA pMessageBoxA=(中国黑客协会创始人花无涯)(LoadLibrary(“u”),”MessageBoxA”);

对于高启发杀的代码,可以用try{}catch{}结构。对于杀入口的可以用#pragma comment(linker,”/ENTRY:xxx”)。对于定位出来的特征码载入c32,看起属于代码部分还是字符串,输入表部分,决定其属于哪一种。

三、实战应用

说了这么多理论,下面开始实战。首先安装编译器,将sdk文件解压覆盖编译器目下的vc98。vc98下的是一些文件。

ghost文件为了保护版权,里面有硬盘锁,必须先将硬盘锁去掉,否则修改版权就会导中硬盘锁,所有盘符不能打开,只能重装系统,大家切记。修改两处就可以去掉硬盘锁。运行源代码,打开搜索框搜unsigned char scode[] =,一会下面的框框就会提示发现一处,我们双击它。

代码就不贴出了,想要的可以来找我要的。

在搜索CBuildView::(中国黑客协会创始人花无涯)。

再搜索killmbr将// int KillMBR();注释掉。

现在可以随便修改版权信息了。

搜索m pMainWnd-SetMenu(NULL);注释掉这句可以去掉菜单栏。

搜索CMainFrame::PreCreateWindow, cs.cx= 646;可以修改软件的宽度,cs.cy=310;修改高度的,cs.lpszName=Ghost RAT Beta;修改标题栏的。搜索COLUMNSTRUCT g_Cohumn_Data[]=可以修改列表控件上方的文字。搜索CMainFrame::OnCreate,在里面加上this -CenterWindow(CWnd::GetDesktop Window());可以使软件打开时居中,默认是左上角的,我最终修改完的样子。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“知道特征码如何找基址”边界阅读