C++源代码免杀之函数的动态调用

最近也在学着修改Gh0st远控的源代码,源代码免杀起来还是方便、简单、有效和简单点。针对于输入输出表盯的比较紧的杀毒软件,最有效的还是进行函数动态调用。也就是说找到函数的原定义,包括值类型和参数等等,再在调用该函数的地方重新定义这个函数,其实也只是改下函数名而已,下面举个例子:

CreateRemoteThread 作用是创建远线程,假设杀毒软件现在就杀在这个函数上,我们就这样处理,首先在代码中右键点击CreateRemoteThread函数-->转到定义,找到函数的原型:

函数原型如下:

WINBASEAPI
__out
HANDLE
WINAPI
CreateRemoteThread(
__in HANDLE hProcess,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in SIZE_T dwStackSize,
__in LPTHREAD_START_ROUTINE lpStartAddress,
__in_opt LPVOID lpParameter,
__in DWORD dwCreationFlags,
__out_opt LPDWORD lpThreadId
);

改后的函数模型如下:

typedef HANDLE (WINAPI *CreateRemoteThreadxx)
(
__in HANDLE hProcess,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in SIZE_T dwStackSize,
__in LPTHREAD_START_ROUTINE lpStartAddress,
__in_opt LPVOID lpParameter,
__in DWORD dwCreationFlags,
__out_opt LPDWORD lpThreadId
);
CreateRemoteThreadxx yyCreateRemoteThread= (CreateRemoteThreadxx)GetProcAddress(LoadLibrary("kernel32.dll"),"CreateRemoteThread");

补充:有些函数原型最后面分别带得有A和W的,如果你的编译环境是ANSI环境就选择带A的那部分,如果你的环境是Unicode环境,那就选择带W的那部分。例如:GetUserName的原型有两种定义:GetUserNameA和GetUserNameW,视实际情况选择相应的函数原型进行修改就好。

修改后调用的函数名就由CreateRemoteThread变为了yyCreateRemoteThread,红色部分为自定义部分,随便你改称什么,但是要注意前后一致。蓝色的部分再可以用字符串连接法进行分离后连接,这样处理之后,杀毒软件就找不到CreateRemoteThread这个函数了。到此,文件的这处也就免杀了。一点小手记,分享给大家,见笑了。

后记:看了很多教程,都是说怎么改,没说为什么要这么改,也没说还可以怎么改,更没说改的限度是什么。一看教程里先在函数后面加个L,再在定义后的新的函数前面加个p,接着很多看了教程的人都改成那两个,做教程的人还在教程里吓唬人说“别的都不要动,这两个地方改成这样就可以了”,有时候有些事情并不难,并不可怕,难和可怕大多来自于别人的耸人听闻和对未知事物的惧怕。最后希望大家都能够放开手脚,干番大事业!搞了个垃圾站赚点外块,希望大家能支持下。

转载于:https://www.cnblogs.com/swordzj/archive/2012/02/10/2345910.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一款可以自已定制病毒特征库的杀毒软件,可以用此软件变种为任意的病毒专杀工具。界面及病毒特征库均可自行定制编辑,支持最大100个线程扫描文件,杀毒方式可自行设定,支持对每一种病毒特征码设置一种杀毒方式。采用文件二进制比对的方式查杀电脑上的文件,可以对电脑文件中含有病毒特征码的文件执行删除文件、清除文件病毒码字节、用空格替换文件病毒码字节、用0x00替换文件病毒码字节,用指定字符替换文件病毒码字节等等杀毒方式。病毒特征码可以资源共享。 目前版本的实质为:多线程文件内容比对查找及修改替换工具。程序未加入主动防御、恶意行为拦截等功能,程序特别适合作为病毒专杀工具,可以对程序作小的改动即可实现变种。 本程序规模不大,易读懂,程序全为业余书写,几乎没有经过什么测试,可能存在许多错误。软件在www.csdn.net首页的“创新无极限,软件你来选”中申报成功(开源类),请下载了源码的用户在2010年1月1日到2010年1月21日期间投此软件一票,以示对作者开源的支持。 作者开源的另一作品“文本语音朗读组件”全套VC++源码,也欢迎用户下载并投作者一票。你可以对上面两款软件源码重新改进形成功能各异的属于你的作品。 作者已没有时间对上述程序进行深度开发和升级,只是希望
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值