时间: 2021-07-31 作者:daque
迩来也在学着窜改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,接着很多看了教程的人都改成那两个,做教程的人还在教程里恫吓人说“其余都不要动,这两个场合改成如许就不妨了”,有功夫有些工作并不难,并不恐怖,难和恐怖大多来自于旁人的骇人听闻和对未知实物的畏缩。结果蓄意大师都不妨摊开动作,干番大工作!搞了个废物站赚点外块,蓄意大师能扶助下。