下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

在C++中源码免杀之函数如何动态的调用

作者:课课家教育     来源: http://www.kokojia.com点击数:1301发布时间: 2016-12-22 16:00:07

标签: C++编程代码字符串

大神带你学编程,欢迎选课

  大家在学习C++的过程中,是否有听说过“源代码免杀”这一个名词呢?其实源码免杀的定义就是我们可以通过函数的调用、字符串的隐藏、加花指令等技术来实现。小编在最近的一段时间都在学习着究竟如何去修改Gh0st远控的源代码。其实相对来说,源代码免杀起来还是较为方便、简单以及有效的。那么今天小编就为大家介绍这篇教程:在C++中源码免杀之函数如何动态的调用。

在C++中源码免杀之函数如何动态的调用_C++_编程代码_字符串_课课家

  其实小编觉得针对于一些输入输出表盯的比较为很紧的杀毒软件,最有效的最直接的方法还是进行函数的动态调用。换一句话来说,就是找到函数的一些原定义,包括值参数以及类型等等,然后我们再接着在调用这个函数的地方重新进行定义该函数,其实这仅仅只是修改一下函数的名字而已。为了大家可以更加深入的理解,小编特意找了个例子来演示说明,具体的例子如下:

  示范例子:

  大家知道CreateRemoteThread有什么作用吗?没错,它主要就是用来创建远线程的。假如说现在杀毒软件就要马上杀在这个函数上,那么我们就应该这样进行处理,实现的方法如下:首先我们要做的就是在代码中使用鼠标的右键点击CreateRemoteThread函数-->转到定义,接着要找到函数的原型。

  函数的原型,具体编程代码,如下图:

函数的原型

  当修改过后的函数模型,具体编程代码,如下图:

修改过后的函数模型

  补充知识:

  小编在这里稍微为带补充一些知识吧,其实有一些函数的原型最后面分别带得有W以及A的,假如说我们的编译环境是Unicode的环境,那么我们就选择带字母W的那一个部分。假如说我们的环境不是Unicode的环境而是ANSI环境的话,那么就选择带字母A的那一个部分。就比如说:在GetUserName的原型有两种定义,分别是GetUserNameW以及GetUserNameA这两种。在这里,其实我们只要根据实际的情况来进行选择相对应的函数原型进行适当的修改就可以了。

  当我们修改成功以后,调用的函数名字就由CreateRemoteThread变成了yyCreateRemoteThread。颜色为红色的那一个部分是一个自定义的部分,随便大家修改称什么都可以。但是我们要注意一点,那就是一定要保持前后一致哟!颜色为蓝色的那一个部分再可以用字符串连接法进行分离后连接,只要经过这样的处理以后,那么杀毒软件就会找不到名为CreateRemoteThread这个函数了。直至现在为止,文件的这一个地方也就免杀了。这只是小编的一点点经验而已,现在就分享给大家了,希望对大家有所帮助。

  小编总结:小编看了非常多的教程,在这些教程中都是说应该怎么进行修改,但是并没有说明为什么需要这样子修改,也没有说明还可以怎么改,更加没有修改的限度是什么。一看教程里面,首先在要在函数的后面加一个字母L,再接着在定义之后新的函数前面加一个字母p,接下来有非常多看了教程的人都修改成那两个,编写教程的人还在教程里面吓唬人说“别的地方都不要动,这两个地方修改成为这样接口”,有时有些事情其实并不复杂,也并不可怕,难和可怕大多来自于别人的耸人听闻和对未知事物的惧怕。最后希望大家都能够放开手脚,干番大事业!也希望大家可以探索出C++的更多使用方法。

  小编结语:

  大家通过教程可以看到,小编主要是想大家学习一下在C++中源码免杀之函数如何动态的调用,是不是非常的简单易学?今天的编程语言教程就已经介绍完毕了,如果你还是与犹未尽,可以进入我们的官网课课家教育,了解更多的C++入门教程。

赞(17)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程