【镜像同步源码】【thinkphp 查询源码】【分站源码系统】loaddll od 源码

2024-11-30 01:35:06 来源:浴火重生战法源码 分类:热点

1.灰鸽子如何修改特征码?
2.特征码 怎么改才不会错。。。。。

loaddll od 源码

灰鸽子如何修改特征码?镜像同步源码

       灰鸽子是一款非常不错的远程控制软件,使用者也很多,因此是各大杀软的必杀对象。较新的鸽子主要功能代码用DLL实现,这增加了程序的隐蔽性,但同时也加大了修改特征码的难度。对于全部功能由一个EXE文件完成的程序,比如鸽子的老版本和WinShell之类,只需要修改EXE本身既可;而对于运行时会释放DLL文件的版本,不但EXE文件本身有特征码(通常在代码段中),而且DLL中也含有大量特征码。因此,修改的大致过程为:导出DLL,修改DLL,DLL导入EXE,修改EXE。下面以灰鸽子1.版未加壳服务端,卡巴斯基的特征码为例,详细地讲解修改过程。喝口水,准备过草地了。

        DLL文件的导出

        拿到服务端文件,老规矩,先检测,卡巴报警发现Backdoor.Win.Feutel.a。thinkphp 查询源码下面导出服务端包含的DLL,灰鸽子官方教程里用的是ResHacker,而我更偏向于使用PE Explorer。打开服务端文件,点击工具栏里的“Resource Viewer/Editor”,会显示资源的树状结构,其中RCData?MAINDLL就是我们需要导出的文件.

        可以看到PE Explorer已经自动判断出该资源是一个PE文件。在MAINDLL的图标上单击右键,选择“save resources as”,就可以将MAINDLL资源导出。下面做什么?开始修改吗?别急,MAINDLL中还有两个DLL需要导出。再打开刚导出的资源,可以得到另外两个DLL,名字倒是很直接,一个叫HOOK,一个叫GETKEY.

        分别导出这两个DLL,用卡巴斯基检测一下,报警发现了Backdoor.Win.Feutel.a和Trojan-PSW.Win.KeyLogger.c。到这里,基本思路就应该确定了,先修改HOOK和GETKEY两个DLL,然后将其导入MAINDLL,再修改MAINDLL的代码段中含有的特征码,完毕后将其导入原服务端EXE文件,最后修改EXE文件的代码段中含有的特征码!可不要打退堂鼓,让我们一步步来。

        修改HOOK

        这是分站源码系统我们第一次修改DLL,但DLL文件的格式和普通的EXE文件其实没有差别,都是标准的PE文件,如果你看了前两期关于特征码定位器使用的文章的话,操作上应该没有什么问题。我们的思路仍旧是:手动定位确定特征码大体范围,自动定位确定精确的位置。

        打开CCL,设置成手动,生成个文件,然后打开HOOK,不选择任何段,对整个文件进行替换,等程序提示全部文件生成完毕后,用卡巴斯基对目标文件夹检测,并将报警的文件删除,最终结果如下:

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

        B8 B8

        D0 B8

        C C F8

        下面将CCL设置为自动检测,间隔时间为7秒,在输入检测段时将和的数据添加到待检测栏里.

        如果你细心的话会发现这两个偏移其实都在CODE段中,这正说明大多数特征码的位置都存在于代码段里。单击确定,进行自动检测,过程就不说了,详细的操作动画过去的黑防都已提供,最终得到如下定位结果:

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

        A8

        A9 A D3

        D5 A FF

        A A

        C A

        A

       

        C B1

        还真不少,共有8处。修改哪里呢?我的经验是:尽量修改代码,避免修改字符串和数据,因为修改后者必须将每一处调用它的指令都做改动,且在不确定具体含义的汽车ecu源码情况下很容易出错,不推荐。

       先看第一处,用IDA对HOOK进行反汇编,然后找到处,也就是内存偏移D(这里可以用我写的小工具:偏移量转换器,输入文件偏移可以自动计算出内存偏移),这里的代码如下:

       CODE:D dd offset off_FB0

       CODE:D dd D0Bh, Fh, 6B6F6Fh

       CODE:DA1 align 4

       很显然,这是一些数据,我们甚至不知道它的意义,要修改真是无从下手。于是看第2处,代码如下:

       ……

       CODE:DAD xor edx, edx

       CODE:DAF mov [ebp+var_], edx

       CODE:DB2 mov [ebp+var_8], edx

       CODE:DB5 mov ebx, eax

       CODE:DB7 xor eax, eax

       CODE:DB9 push ebp

       CODE:DBA push offset loc_F

       CODE:DBF push dword ptr fs:[eax]

       CODE:DC2 mov fs:[eax], esp

       CODE:DC5 xor eax, eax

       CODE:DC7 push ebp

       ……

        看来第二处全部是汇编指令,就修改它了。用什么方法呢?前两期我介绍过“指令顺序变换”和“万能跳转”两种方法,当然,能用第一种时尽量用,这里我们也采用变换指令顺序的方法。注意加黑的指令,我们就改变这两句的顺序。修改文件我还是习惯用OllyDbg,因为可以直接进行指令级的操作,你也可以用二进制编辑软件。

        用OD打开HOOK,OD会提示“打开的是DLL,是否用Loaddll进行加载”,点确定,然后来到E4DA7处。这里又有问题了,为什么刚才用IDA打开时,discuz源码读懂位置在DA7而现在却变成E4DA7呢?这是因为DLL加载时,加载基址是可变的。给大家讲一个在OD中判断加载基址的方法。单击OD工具栏中的M,会显示出当前进程内存中的所有模块.

        根据名称找到加载我们的DLL的位置,图中可以看到已经被LOADDLL给占据了,因此HOOK只能被发配到D了,相应的,在IDA中的地址需要减去一个差值(-D)才能得到OllyDbg中的地址。

        将黑体的指令进行顺序调换,修改如下:

       E4DB7 push ebp

       E4DB8 C0 xor eax,eax

        然后保存修改,再用卡巴斯基来检测一下修改后的HOOK文件,果然,HOOK已经免杀了,是不是很神奇,仅仅修改了三个字节就搞定了!

        修改GETKEY

        下面该第二个DLL了,过程和修改HOOK的一样,就不详述了,简述一下过程:手动定位的结果如下(生成个文件):

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

        BC BC

        B5 E

        DE9 AF E

       然后对B5和9DE9两个段进行自动定位,最终结果如下:

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

       

        A

        A E

        F A B9

        BB A E5

        E6 A

        E A E6A

        共有7处,还挺多的。原理一样,尽量修改汇编指令,避免字符串和数据。这一次运气不错,第段就是汇编指令:

       DA . AD push RC_Data_.DA ; ASCII " <"

       DA . 8D ECFEFFFF lea edx,dword ptr ss:[ebp-]

       DAC . 8B F8 mov eax,dword ptr ss:[ebp-8]

       DAF . E8 FEFFFF call RC_Data_.DAC

       相信修改这几句指令已经难不倒你了,将前三句的顺序调换一下:

       DA AD push RC_Data_.DA ; ASCII " <"

       DA &

特征码 怎么改才不会错。。。。。

       灰鸽子是一款非常不错的远程控制软件,使用者也很多,因此是各大杀软的必杀对象。较新的鸽子主要功能代码用DLL实现,这增加了程序的隐蔽性,但同时也加大了修改特征码的难度。对于全部功能由一个EXE文件完成的程序,比如鸽子的老版本和WinShell之类,只需要修改EXE本身既可;而对于运行时会释放DLL文件的版本,不但EXE文件本身有特征码(通常在代码段中),而且DLL中也含有大量特征码。因此,修改的大致过程为:导出DLL,修改DLL,DLL导入EXE,修改EXE。下面以灰鸽子1.版未加壳服务端,卡巴斯基的特征码为例,详细地讲解修改过程。喝口水,准备过草地了。

        DLL文件的导出

        拿到服务端文件,老规矩,先检测,卡巴报警发现Backdoor.Win.Feutel.a。下面导出服务端包含的DLL,灰鸽子官方教程里用的是ResHacker,而我更偏向于使用PE Explorer。打开服务端文件,点击工具栏里的“Resource Viewer/Editor”,会显示资源的树状结构,其中RCData?MAINDLL就是我们需要导出的文件.

        可以看到PE Explorer已经自动判断出该资源是一个PE文件。在MAINDLL的图标上单击右键,选择“save resources as”,就可以将MAINDLL资源导出。下面做什么?开始修改吗?别急,MAINDLL中还有两个DLL需要导出。再打开刚导出的资源,可以得到另外两个DLL,名字倒是很直接,一个叫HOOK,一个叫GETKEY.

        分别导出这两个DLL,用卡巴斯基检测一下,报警发现了Backdoor.Win.Feutel.a和Trojan-PSW.Win.KeyLogger.c。到这里,基本思路就应该确定了,先修改HOOK和GETKEY两个DLL,然后将其导入MAINDLL,再修改MAINDLL的代码段中含有的特征码,完毕后将其导入原服务端EXE文件,最后修改EXE文件的代码段中含有的特征码!可不要打退堂鼓,让我们一步步来。

        修改HOOK

        这是我们第一次修改DLL,但DLL文件的格式和普通的EXE文件其实没有差别,都是标准的PE文件,如果你看了前两期关于特征码定位器使用的文章的话,操作上应该没有什么问题。我们的思路仍旧是:手动定位确定特征码大体范围,自动定位确定精确的位置。

        打开CCL,设置成手动,生成个文件,然后打开HOOK,不选择任何段,对整个文件进行替换,等程序提示全部文件生成完毕后,用卡巴斯基对目标文件夹检测,并将报警的文件删除,最终结果如下:

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

        B8 B8

        D0 B8

        C C F8

        下面将CCL设置为自动检测,间隔时间为7秒,在输入检测段时将和的数据添加到待检测栏里.

        如果你细心的话会发现这两个偏移其实都在CODE段中,这正说明大多数特征码的位置都存在于代码段里。单击确定,进行自动检测,过程就不说了,详细的操作动画过去的黑防都已提供,最终得到如下定位结果:

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

        A8

        A9 A D3

        D5 A FF

        A A

        C A

        A

       

        C B1

        还真不少,共有8处。修改哪里呢?我的经验是:尽量修改代码,避免修改字符串和数据,因为修改后者必须将每一处调用它的指令都做改动,且在不确定具体含义的情况下很容易出错,不推荐。

       先看第一处,用IDA对HOOK进行反汇编,然后找到处,也就是内存偏移D(这里可以用我写的小工具:偏移量转换器,输入文件偏移可以自动计算出内存偏移),这里的代码如下:

       CODE:D dd offset off_FB0

       CODE:D dd D0Bh, Fh, 6B6F6Fh

       CODE:DA1 align 4

       很显然,这是一些数据,我们甚至不知道它的意义,要修改真是无从下手。于是看第2处,代码如下:

       ……

       CODE:DAD xor edx, edx

       CODE:DAF mov [ebp+var_], edx

       CODE:DB2 mov [ebp+var_8], edx

       CODE:DB5 mov ebx, eax

       CODE:DB7 xor eax, eax

       CODE:DB9 push ebp

       CODE:DBA push offset loc_F

       CODE:DBF push dword ptr fs:[eax]

       CODE:DC2 mov fs:[eax], esp

       CODE:DC5 xor eax, eax

       CODE:DC7 push ebp

       ……

        看来第二处全部是汇编指令,就修改它了。用什么方法呢?前两期我介绍过“指令顺序变换”和“万能跳转”两种方法,当然,能用第一种时尽量用,这里我们也采用变换指令顺序的方法。注意加黑的指令,我们就改变这两句的顺序。修改文件我还是习惯用OllyDbg,因为可以直接进行指令级的操作,你也可以用二进制编辑软件。

        用OD打开HOOK,OD会提示“打开的是DLL,是否用Loaddll进行加载”,点确定,然后来到E4DA7处。这里又有问题了,为什么刚才用IDA打开时,位置在DA7而现在却变成E4DA7呢?这是因为DLL加载时,加载基址是可变的。给大家讲一个在OD中判断加载基址的方法。单击OD工具栏中的M,会显示出当前进程内存中的所有模块.

        根据名称找到加载我们的DLL的位置,图中可以看到已经被LOADDLL给占据了,因此HOOK只能被发配到D了,相应的,在IDA中的地址需要减去一个差值(-D)才能得到OllyDbg中的地址。

        将黑体的指令进行顺序调换,修改如下:

       E4DB7 push ebp

       E4DB8 C0 xor eax,eax

        然后保存修改,再用卡巴斯基来检测一下修改后的HOOK文件,果然,HOOK已经免杀了,是不是很神奇,仅仅修改了三个字节就搞定了!

        修改GETKEY

        下面该第二个DLL了,过程和修改HOOK的一样,就不详述了,简述一下过程:手动定位的结果如下(生成个文件):

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

        BC BC

        B5 E

        DE9 AF E

       然后对B5和9DE9两个段进行自动定位,最终结果如下:

        -------------定位结果------------

        序号 起始偏移 大小 结束偏移

       

        A

        A E

        F A B9

        BB A E5

        E6 A

        E A E6A

        共有7处,还挺多的。原理一样,尽量修改汇编指令,避免字符串和数据。这一次运气不错,第段就是汇编指令:

       DA . AD push RC_Data_.DA ; ASCII " <"

       DA . 8D ECFEFFFF lea edx,dword ptr ss:[ebp-]

       DAC . 8B F8 mov eax,dword ptr ss:[ebp-8]

       DAF . E8 FEFFFF call RC_Data_.DAC

       相信修改这几句指令已经难不倒你了,将前三句的顺序调换一下:

       DA AD push RC_Data_.DA ; ASCII " <"

       DA &

       另外,团IDC网上有许多产品团购,便宜有口碑

更多资讯请点击:热点

热门资讯

vuejs源码视频

2024-11-30 01:06204人浏览

android stdio源码

2024-11-29 23:20881人浏览

钓鱼源码吾爱_最新钓鱼源码

2024-11-29 22:50229人浏览

推荐资讯

jquery html 源码

1.网上下的jquery特效代码怎么用?如2.jquery的.html()中的<img src=""> 地址""内如何加$(动态获取的img地址)3.html网页中如何引用jquery?4

雪狼源码_雪狼团队都有什么赚钱项目

1.我注册了一个世纪佳缘网!感觉他们就是在骗钱!我注册了一个世纪佳缘网!感觉他们就是在骗钱! 贾育远程控制电脑手机传播木马伪装进程盗窃网站和商业资料传播黑 联 系 人:贾育 贾育远程控