本人免杀的软件是DART远程操作软件,针对国内杀毒软件做的免杀,方法还是定位特征码。
相信做过免杀的朋友都用过OD,C32,LPE,myccl,OC等软件把。
软件DART是暗组的远控软件,应该有几个月没免杀了,今天主要说的是定位到了输入表函数的免杀方法,讲三种吧。
第一种。
首先用myccl定位dat配置文件,定位到的特征区间是00016A6F-00000002,用C32载入dat文件,找到00016A71,发现定位到的是输入表的函数InternetOpenA的的p上,由于输入表是不能用修改大小写的,今天我就用输入表函数移位的方法。
我们可以在函数表下面随便找一个0区域,再将函数InternetOpenA移到这个0区域
再将光标放到新函数前面两个字节处,记下函数的新地址 00016B09,
再将移动输入表的函数的dat文件保存了,再将保存的文件载入LordPE,并用LPE软件自带的RVA地址计算来计算下修改后新函数的RVA地址,将00016B09输入到offest中,计算得RVA地址为 00019509 ,并记下来,等下要用。
然后再找到dat文件的输入表,在输入表中找到DLL对应的函数,也就是我们修改后的函数所对应的dll,由于移动了输入表函数,因此在dll下面的函数中会有个Apiname为空的,这也就是我们要的找函数。
然后再右键该行有空白的函数选择编辑,再ThunkValue栏目中输入前面计算得得RVA地址
00019509,再确定,它就会自动自定位到那个地址所对应的函数了,也就是我们新修改函数。
,最后确定在保存,这就是我所修改新的输入表函数了,然后再用杀毒软件杀下,看是否还杀它。
第二种方法。
还是刚刚那个dat文件所定位到的特征区间00016A6F-00000002,我们可以将函数向前或向后移动一两个字节来达到免杀,我就把该函数向后移动两位吧。
再将移动了的新dat文件另保存下,再用ollydbg把原dat文件载入,找到00016A6F所对应的内存地址,新版的OD可以自动物理地址转内存地址功能,如果没的可以用OC转下。转到那行后右键该行,选择搜索-当前模块中的名称。
然后再找到名称为InternetOpenA那一行,并记下它的内存地址 0041851C,
关闭它,然后再用OC软件,把内存地址转换成物理地址,转换得00015B1C,再用C32软件载入向后移动了两个字节函数的dat文件,并转到00015B1C地址。
然后我们看到那个地址所对应的十六进制数,64 94 01 00,其实地址所对应得这里是输入指针,那么这个十六进制数所对应的就是所修改的函数,我们其实可以用LPE找到该函数,改函数的地址就是00019464,就是将该十六进制数反过来写。
,所以我们只要修改64这个数就可以了,由于我们是将那个函数向后移动了两位,所以将64加2就可以了,也就是66了。修改后再保存,这就是我们修改后的新的dat文件,然后再去测试下功能上线情况,再用杀软软件杀下试试。
下面介绍第三种方法
如果我们定位到的是一个dll函数,如果是dll函数前面或者后面的空白处的话好修改,直接用20或者90修改,如果是dll函数的字母上的话,那中方法就不行了。
假设我定位到了00016A9D上,就有shell32.dll函数的h上,我们将该函数向前移动一个字节,并记下新移动函数的地址00016a9b。
然后再将修改后的dat文件保存,再用LPE载入,用软件自带的计算RVA地址来计算00016a9b,得到RVA地址为0001949B。再找到shell32.dll输入函数,我们会看到有个少了一个s的叫hell32.dll,其实这就是我们修改后的dll函数,由于移动了一位,所以少了个s,我们再右键hell32.dll编辑,RVA地址由0001949C修改为00016a9b,再确定,就会看见回到了shell32.dll以前。
然后再保存。最后依旧去测试功能是否正常,再去杀下毒。
总算是搞完了,杀毒软件也经常定位到输入表上,因此这也是我经常修改的方法,修改后基本可以达到免杀,功能也没变。文章有打错字的话请谅解,由于是现场直接做写的,没有仔细去修改了。
在此也希望能申请到看雪论坛的邀请码,想在看雪论坛继续深入的学习。
如果还不够申请的话,下次再来做个软件破解,希望能早点得到邀请码,谢谢。
[课程]Linux pwn 探索篇!