导航:首页 > 源码编译 > 病毒反编译

病毒反编译

发布时间:2022-01-27 20:04:56

① 那些高手们是如何看到病毒的源文件的

看是啥情况,专业公司的通过别人的举报和设置蜜罐机来捕获病毒文件
分析文件,vbs这类的直接就可以看代码了
exe这类二进制的通常用ida
pro这里静态反编译的工具看汇编代码和资源

② 怎么样反编译病毒代码

反编译,反编译还不就是用apktool反编译啊

③ 可以反编译木马apk吗

您好
如果木马APK源代码没有加密

是可以通过反编译软件进行反编译的

如果您反编译的目的是为了修改木马继续传播,请不要传播病毒、盗号木马程序,恶意传播病毒和木马会污染互联网环境,请您加入到维护网络安全的大军中!

QQ木马程序会导致您和他人的帐号和密码泄露,从而可能使您和他人的QQ财产,如游戏、QB等受到严重威胁,严重的还会违反法律。
请您不要轻易安装陌生人传送给您的未知文件,有可能是病毒或者木马。
建议您安装腾讯电脑管家对您的电脑进行实时防护,保护您的电脑安全运行,避免给您的财产和个人隐私带来威胁。
腾讯电脑管家企业平台:http://..com/c/guanjia/

④ 不是说程序都是反编译的吗那病毒等程序的源代码别人是如何知道的

反编译只是让其他人不容易获得源代码而已,理论上只要能执行的程序都可以通过机器码变为汇编代码,大家可以研究其代码。
由于病毒程序一般较小,代码被反编译后更容易阅读。
如果把windowsXP反编译,阅读的工作量将是一个天文数字!

⑤ 为什大多数免杀,都将病毒文件反编译成汇编代码而不是高级语言代码 是不是为了统一。。

wxw072理解的没错~
已经编译好的可执行程序都是以二进制码组成的
汇编这种低级语言和二进制码是一一对应的关系
所以反编译的时候,只要读取硬盘或内存中的程序编码
既可以很简单的反编译为汇编语言。
这样方便实现而且错误率极低
而高级语言其实是一种给人看的语言,而不是给机器看的~~
机器只能看懂机器码,汇编其实只不过是机器码的另一种形势,但高级语言则完全是另一种东西。

把可执行文件直接反编译为高级语言的软件并不多,而且反编译出来的高级语言往往也只能做个参考,不能完全依赖
java貌似可以,但这是因为java程序是在JVM上运行的,不依赖操作系统,也不直接操作机器。所以用java编写并生成的程序本身也不是机器码的。而只是一种中间代码,这样就很容易反编译回java语言状态)

何况病毒一类的东西的程序大多是加壳加花的~
这样几乎就没啥可能直接反编译成高级语言了~
只能在汇编语言下进行调试和修改
因为加壳加花是为了迷惑人的,而不是为了迷惑机器的(废话,如果连机器都迷惑了,那这个程序就执行不了了……)
所以反汇编就是从机器的角度去读这个程序。以求最大的成功率

而反编译为高级语言,属于逆向工程的范畴,很深的一门学科
是需要通过反编译的汇编代码,人为的恢复成高级语言代码,挺难的~~

⑥ 能否对病毒木马进行反编译

⑦ 如何反编译木马程序

木马程序是一种程序,它能提供一些有用的,或是仅仅令人感兴趣的功能。但是它还有用户所不知道的其他功能,例如在你不了解的情况下拷贝文件或窃取你的密码。

RFC1244(Request for Comments:1244)中是这样描述木马的:“木马程序是一种程序,它能提供一些有用的,或是仅仅令人感兴趣的功能。但是它还有用户所不知道的其他功能,例如在你不了解的情况下拷贝文件或窃取你的密码。”随着互联网的迅速发展,木马的攻击、危害性越来越大。木马实质上是一个程序,必须运行后才能工作,所以会在进程表、注册表中留下蛛丝马迹,我们可以通过“查、堵、杀”将它“缉拿归案”。



1.检查系统进程

大部分木马运行后会显示在进程管理器中,所以对系统进程列表进行分析和过滤,可以发现可疑程序。特别是利用与正常进程的CPU资源占用率和句柄数的比较,发现异常现象。

2.检查注册表、ini文件和服务

木马为了能够在开机后自动运行,往往在注册表如下选项中添加注册表项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

木马亦可在Win.ini和System.ini的“run=”、“load=”、“shell=”后面加载,如果在这些选项后面加载程序是你不认识的,就有可能是木马。木马最惯用的伎俩就是把“Explorer”变成自己的程序名,只需稍稍改“Explorer”的字母“l”改为数字“1”,或者把其中的“o”改为数字“0”,这些改变如果不仔细观察是很难被发现。

在Windwos NT/2000中,木马会将自己作为服务添加到系统中,甚至随机替换系统没有启动的服务程序来实现自动加载,检测时要对操作系统的常规服务有所了解。

3.检查开放端口

远程控制型木马以及输出Shell型的木马,大都会在系统中监听某个端口,接收从控制端发来的命令,并执行。通过检查系统上开启的一些“奇怪”的端口,从而发现木马的踪迹。在命令行中输入Netstat na,可以清楚地看到系统打开的端口和连接。也可从www.foundstone.com下载Fport软件,运行该软件后,可以知道打开端口的进程名,进程号和程序的路径,这样为查找“木马”提供了方便之门。

4.监视网络通讯

对于一些利用ICMP数据通讯的木马,被控端没有打开任何监听端口,无需反向连接,不会建立连接,采用第三种方法检查开放端口的方法就行不通。可以关闭所有网络行为的进程,然后打开Sniffer软件进行监听,如此时仍有大量的数据,则基本可以确定后台正运行着木马。



1.堵住控制通路

如果你的网络连接处于禁用状态后或取消拨号连接,反复启动、打开窗口等不正常现象消失,那么可以判断你的电脑中了木马。通过禁用网络连接或拔掉网线,就可以完全避免远端计算机通过网络对你的控制。当然,亦可以通过防火墙关闭或过滤UDP、TCP、ICMP端口。

2.杀掉可疑进程

如通过Pslist查看可疑进程,用Pskill杀掉可疑进程后,如果计算机正常,说明这个可疑进程通过网络被远端控制,从而使计算机不正常。



1.手工删除

对于一些可疑文件,不能立即删除,有可能由于误删系统文件而使计算机不能正常工作。首先备份可疑文件和注册表,接着用Ultraedit32编辑器查看文件首部信息,通过可疑文件里面的明文字符对木马有一个大致了解。当然高手们还可以通过W32Dasm等专用反编译软件对可疑文件进行静态分析,查看文件的导入函数列表和数据段部分,初步了解程序的主要功能。最后,删除木马文件及注册表中的键值。

2.软件杀毒

由于木马编写技术的不断进步,很多木马有了自我保护机制。普通用户最好通过专业的杀毒软件如瑞星、金山毒霸等软件进行杀毒,对于杀毒软件,一定要及时更新,并通过病毒公告及时了解新木马的预防和查杀绝技,或者通过下载专用的杀毒软件进行杀毒(如近期的冲击波病毒各大公司都开发了查杀工具)。

⑧ 今天电脑中病毒了,提供病毒文件谁能反编译一下

这表现和autorun病毒一个样哈,起码类似,形式。

⑨ 关于特征码识别计算机病毒方法

病毒的产生速度很快,依然有很多病毒没有被识别.但是现在主要还是用特征码来识别病毒,一般的杀毒软件都是用类似特征码来识别并查杀病毒。
第一节 特点
病毒绕过了微软提供的应用程序界面,绕过了ActiveX、C++甚至C,使用汇编,
利用VxD(虚拟设备驱动程序)接口编程,直接杀入Windows内核。它没有改变宿主文件
的大小,而是采用了一种新的文件感染机制即碎洞攻击(fragmented cavity attack),
将病毒化整为零,拆分成若干块,插入宿主文件中去;最引人注目的是它利用目前许多
BIOS芯片开放了可重写的特性,向计算机主板的BIOS端口写入乱码,开创了病毒直接进
攻计算机主板芯片的先例。可以说CIH病毒提供了一种全新的病毒程序方式和病毒发展方向。
第二节 CIH病毒的初始化
1.用SIDT指令取得IDT base address(中断描述符表基地址),然后把IDT的INT 3 的入口地址改为指向CIH自己的INT3程序入口部分;
2.执行INT 3指令,进入CIH自身的INT 3入口程序,这样,CIH病毒就可以获得Windows最高级别的权限(Ring 0级),可在Windows的内核执行各种操作(如终止系统运行,直接对内存读写、截获各种中断、控制I/O端口等,这些操作在应用程序层Ring 3级是受到严格
限制的)。病毒在这段程序中首先检查调试寄存器DR0的值是否为0,用以判断先前是否有CIH病毒已经驻留。
3.如果DR0的值不为0,则表示CIH病毒程式已驻留,病毒程序恢复原先的INT 3入口,然后正常退出INT3,跳到过程9;
4.如果DR0值为0,则CIH病毒将尝试进行驻留。首先将当前EBX寄存器的值赋给DR0寄存器,以生成驻留标记,然后调用INT 20中断,使用VxD call Page Allocate系统调用,请求系统分配2个PAGE大小的Windows系统内存(system memory),Windows系统内存地址范围为C0000000h~FFFFFFFFh,它是用来存放所有的虚拟驱动程序的内存区域,如果程序想长期驻留在内存中,则必须申请到此区段内的内存。
5.如果内存申请成功,则从被感染文件中将原先分成多块的病毒代码收集起来,并进行组合后放到申请到的内存空间中;
6.再次调用INT 3中断进入CIH病毒体的INT 3入口程序,调用INT20来完成调用一个IFSMgr_InstallFileSystemApiHook的子程序,在Windows内核中文件系统处理函数中挂接钩子,以截取文件调用的操作,这样一旦系统出现要求开启文件的调用,则CIH病毒的传染部分程序就会在第一时间截获此文件;
7.将同时获取的Windows默认的IFSMgr_Ring0_FileIO(核心文件输入/输出)服务程序的入口地址保留在DR0寄存器中,以便于CIH病毒调用;
8.恢复原先的IDT中断表中的INT 3入口,退出INT 3;
9.根据病毒程序内隐藏的原文件的正常入口地址,跳到原文件正常入口,执行正常

第三节 病毒发作条件判断

在CIHv1.4中,病毒的发作日期是4月26日,病毒从COMS的70、71端口取出系统当前日期,对其进行判断:

MOV AX,0708
OUT 70,AL
IN AL,71 取当前系统月份->AL
XCHG AL,AH
OUT 70,AL
IN AL,71 取当前系统日->AL
XOR AX,0426 是否为4月26日
JZ 病毒发作程序

之所以不采用这段代码做特征码,是为防止正常程序使用,或者易于发作条件修改。
第四节 病毒的破坏
1.通过主板的BIOS端口地址0CFEH和0CFDH向BIOS引导块(boot block)内各写入一个字节的乱码,造成主机无法启动。
随着闪存(FlashMemory)价格的下跌,奔腾机器上BIOS普遍采用PROM(可编程只读存储器),它可以在12伏以下的电压下利用软件的方式,从BIOS端口中读出和写入数据,以便于进行程序的升级。CIH病毒正是利用闪存的这一特性,往BIOS里写入乱码,造成BIOS中的原内容被会彻底破坏,主机无法启动。
所幸的是,CIH只能对少数类型的主板BIOS构成威胁。这是因为,BIOS的软件更新是通过直接写端口实现的,而不同主
板的BIOS端口地址各不相同。现在出现的CIH只有1K,程序量太小,还不可能存储大量的主板和BIOS端口数据。它只对
端口地址为0CFEH和0CFD的BIOS(据有关资料为Intel 430TX chipset、部分Pentium chipsets)进行攻击
2.覆盖硬盘
通过调用Vxd call IOS_SendCommand直接对硬盘进行存取,将垃圾代码以2048个扇区为单位,从硬盘主引导区开始依
次循环写入硬盘,直到所有硬盘(含逻辑盘)的数据均被破坏为止。

特征码:
55 8D 44 24 F8 33 DB 64 87 03 E8 00 00 00 00 5B 8D
4B 42 51 50 50 0F 01 4C 24 FE 5B 83 C3 1C FA 8B 2B
66 8B 6B FC 8D 71 12 56 66 89 73 FC C1 EE 10 66 89
73 02 5E CC 56 8B F0 8B 48 FC F3 A4 83

偏移位置:0x240

特码长度:0x40

反汇编代码:

00400240 > 55 PUSH EBP
00400241 8D4424 F8 LEA EAX,DWORD PTR SS:[ESP-8]
00400245 33DB XOR EBX,EBX
00400247 64:8703 XCHG DWORD PTR FS:[EBX],EAX
0040024A E8 00000000 CALL Win95_ci.0040024F
0040024F 5B POP EBX
00400250 8D4B 42 LEA ECX,DWORD PTR DS:[EBX+42]
00400253 51 PUSH ECX
00400254 50 PUSH EAX
00400255 50 PUSH EAX
00400256 0F014C24 FE SIDT FWORD PTR SS:[ESP-2] ; 用SIDT指令取得IDT base address(中断描述符表基地址),
; 然后把IDT的INT 3 的入口地址改为指向CIH自己的INT3程序入口部分;
0040025B 5B POP EBX
0040025C 83C3 1C ADD EBX,1C
0040025F FA CLI
00400260 8B2B MOV EBP,DWORD PTR DS:[EBX]
00400262 66:8B6B FC MOV BP,WORD PTR DS:[EBX-4]
00400266 8D71 12 LEA ESI,DWORD PTR DS:[ECX+12]
00400269 56 PUSH ESI
0040026A 66:8973 FC MOV WORD PTR DS:[EBX-4],SI
0040026E C1EE 10 SHR ESI,10
00400271 66:8973 02 MOV WORD PTR DS:[EBX+2],SI
00400275 5E POP ESI
00400276 CC INT3 ; 执行INT 3指令,进入CIH自身的INT 3入口程序,获得权限(Ring 0级),
00400277 56 PUSH ESI
00400278 8BF0 MOV ESI,EAX
0040027A 8B48 FC MOV ECX,DWORD PTR DS:[EAX-4]
0040027D F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
0040027F 83E8 08 SUB EAX,8
与1.3版本匹配,源病毒初始代码如下:

MyVirusStart:
push ebp

; *************************************
; * Let's Modify Structured Exception *
; * Handing, Prevent Exception Error *
; * Occurrence, Especially in NT. *
; *************************************

lea eax, [esp-04h*2]

xor ebx, ebx
xchg eax, fs:[ebx]

call @0
@0:
pop ebx

lea ecx, StopToRunVirusCode-@0[ebx]
push ecx

push eax

; *************************************
; * Let's Modify *
; *************************************
pop esi

; *************************************
; * Generate Exception to Get Ring0 *
; *************************************

int HookExceptionNumber ; GenerateException

ReturnAddressOfEndException = $

; *************************************
; * Merge All Virus Code Section *
; *************************************

push esi
mov esi, eax

:

mov ecx, [eax-04h]

rep movsb

sub eax, 08h

; *************************************
; * Generate Exception Again *
; *************************************

; *************************************
; * Let's Restore *
; * Structured Exception Handing *
; *************************************

; *************************************
; * When Exception Error Occurs, *
; * Our OS System should be in NT. *
; * So My Cute Virus will not *
; * Continue to Run, it Jmups to *
; * Original Application to Run. *
; *************************************

StopToRunVirusCode:
@1 = StopToRunVirusCode

; *************************************
; * Return Original App to Execute *
; *************************************

文档:

http://www.yuanmawang.com/Download.asp?ID=5543&sID=1

音频:

http://download1.77169.com/donghua/other/12-11.zip

今天讲一下怎么改病毒的特征码,让它不被杀毒软件杀掉,就拿hgzvip1.2没有配置的服务端为例子

现在能被金山认识出来!

一般从程序的入口开始找特征码
4bdf68是内存的虚拟地址
bd368就是文件的相对偏移地址

现在查不出了,就说明特征码就在刚在的那一片
刚才我们填充的是120,现在就取它的一半90

范围更小了
再取90的一半
哈,范围更小了
再取48的一半
运气真好,就是这一段了,我们可以把范围更精确一点
有毒,说明不是这一段,go on,go on,go on,
查不到了,就说明是从bd376这里左右开始的
反编译原来的文件看一下,搞错了,应该用原来的文件

我们就从这里改,先看懂这里程序的意思
xor eax,eax 是把eax清为0
那么后面的两句程序的意思也是把内存地址清0,就是这两句。
我们把它的先后顺序换一下就可以了,这两句就ec和e8不同,我们换一下它们的先后顺序。
对应的文件就是这里,查一下还会不会被金山认出,哈哈,它不认识了!
但是还会被kv认出,所以我们得继续,把kv识别的特征也得改了,
方法和这里是一样的,我就不继续了。
关键点在于找到特征码之后,不能乱改,一定要把程序的意思看懂了,不然程序可能出错的。

⑩ ~~~~(>_<)~~~~ 可不可以也发我一份儿万分感谢啊!找了好多反编译,都是病毒。好郁闷!

这个东西在网上搜寻不到吗??我以前的找不到了。。。

阅读全文

与病毒反编译相关的资料

热点内容
求知课堂python2020 浏览:260
kafka删除topic命令 浏览:759
phpsql单引号 浏览:86
英雄联盟压缩壁纸 浏览:452
办公app需要什么服务器 浏览:628
安卓服务器怎么获得 浏览:808
空调压缩机冷媒的作用 浏览:781
淘宝app是以什么为利的 浏览:657
java提取图片文字 浏览:924
我的世界手机版指令复制命令 浏览:35
java判断字符串为数字 浏览:926
androidrpc框架 浏览:490
云服务器essd和ssd 浏览:524
家用网关的加密方式 浏览:3
怎么从ppt导出pdf文件 浏览:973
换汽车空调压缩机轴承 浏览:845
平板怎么登录安卓端 浏览:197
图像拼接计算法 浏览:257
怎么打开饥荒服务器的本地文件夹 浏览:293
usb扫描枪编程 浏览:675