<4D F736F F D20CEC4BCFEBCB6B6F1D2E2B4FAC2EBC9A8C3E8D2FDC7E6D6D0B5C4BCD3BFC7CAB6B1F0BCBCCAF52E646F6378>

Similar documents
1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) ()

4 / ( / / 5 / / ( / 6 ( / / / 3 ( 4 ( ( 2

標準 BIG 中文字型碼表 A 0 9 B C D E F 一 乙 丁 七 乃 九 了 二 人 儿 入 八 几 刀 刁 力 匕 十 卜 又 三 下 丈 上 丫 丸 凡 久 么 也 乞 于 亡 兀 刃 勺 千 叉 口 土 士 夕 大 女 子 孑 孓 寸 小 尢 尸 山 川 工 己 已 巳 巾 干 廾

民 國 105 年 大 專 程 度 義 務 役 預 備 軍 官 預 備 士 官 考 選 簡 章 目 錄 壹 考 選 依 據 1 貳 考 ( 甄 ) 選 對 象 1 參 資 格 規 定 1 肆 員 額 及 專 長 類 別 2 伍 報 名 及 選 填 志 願 日 期 方 式 3 陸 選 填 官 科 (


Visualize CMap

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

SIK) 者, 需 實 施 1 年 以 上, 經 體 格 檢 查 無 後 遺 症 者 5. 身 體 任 何 部 分 有 刺 青 紋 身 穿 耳 洞 者, 不 得 報 考, 各 項 檢 查 結 果 須 符 合 體 位 區 分 標 準 常 備 役 體 位 二 在 校 軍 訓 成 績 總 平 均 70 分


Ps22Pdf


untitled

untitled


2

untitled

民國八十九年台灣地區在校學生性知識、態度與行為研究調查

CIP. / ISBN Ⅰ.... Ⅱ.... Ⅲ. Ⅳ. G CIP http / /press. nju. edu. cn

# #$$%& ()*+, -$. #-# / & 0 & 0 #& $& 1 #.& /# 2(3 #$$# $..-$ #$ 0 0 $$$$4 0 0 %# 0-5$ 6 /-0 /0 #$ 0 5$$$ #$$% 0 0 #$$% ()*+, -$. #-# / 7, $8 $$


untitled

!!""# $ %#" & $$ % $()! *% $!*% +,-. / 0 %%"#" 0 $%1 0 * $! $#)2 "

<4D F736F F D F F315FAAFEA5F333AAF9B645C2E5C0F8AA41B0C8C249BCC6B24DB3E6B443C5E9A5D3B3F8AEE6A6A12E646F63>



!"#$!"%&!"$!""( )( )( #( "#*!&#) %&*!(+,- %.!/( )( #( ,-2 89 /

高二立體幾何

Ps22Pdf

爱学习

第一次段考 二年級社會領域試題 郭玉華 (A)(B) (C)(D)

!!"#$ " # " " " " " "$%%& " $%% " "!!

xtj


<4D F736F F D20C1E3B5E3CFC2D4D8C4A3B0E52E646F63>

钢铁金相图谱

!" #$%#&#! () *+, -.!" #$%#/# $!" /$12 0!" 3 4 $$255 % 67 8 $ %% #! " # $9&$

Ps22Pdf

(E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D). ( ) ( ) ( ) ( ) ( ) ( ) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (

序:

《侵权法》综合练习题

九十六學年度第一學期第三次定期考國文科試題

!"!"# # $!""%& ()*+, - ". - "/!%,0 -.! $ " $ # $ $ $ 1 %%&0/! 2(3!""% "/%,.4 "/" -." "" - 5/" - "045 /"""" # # 999$ 6:8$ :;<$ =>

( CIP ) /,. 2 ( ) :, ( ) ISBN :. R CIP ( 2003 ) ( 2 ) ( ) 850 mm 1168mm 1 /

今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单, 新加了个区段放病毒执行代码, 执行病毒代码, 最后跳回原入口点来执行原文件 下面就是感染后的代码的简单分析 : ; =============== S U B R O U T I N E =====================


WCA Regulations and Guidelines

比 賽 表 Competition Schedule 報 到 : 比 賽 開 始 前 15 分 鐘 Reporting : 15 minutes before the scheduled time for the match 各 參 賽 隊 伍 必 須 依 照 大 會 編 定 的 出 場 比 賽,

! " # $ % & (( %) "*+,- &.(/-) & ( 0 & 1! % " % # % & & $ % "/()%!"# (( (02-03 /(((.1/.2( 4 //). /$0 3)0%. /1/%-2 (( ) / ((0 // "*+,- &.(/-) & ( 0 & 1

:;< =;< >!?%(, (-+ *$5(1 *$%* *#%0$#34 65&# *--.20$ $-.#+-317 A$#, 4%, 5* 54! >! B-3 0$5)/3#( * %* $-.# 5( *$#53 B3## *5.#7


njj00118zw.PDF


!!!!"#$ " " %& ( " # " " " " " "$%%& " $%% " "!!

!""# $!""%!"&" #

E170C2.PDF

Microsoft Word htm

( CIP ) /. 2 ( ). :, 2003 ( ) ISBN R CIP ( 2003 ) ( 2 ) ( ) 850 mm 1168mm 1 /

Microsoft Word - “调戏”反遭“反调戏”—记Visual Toolbar 的破解过程.doc

# " $ % $ # ( $ $ %% * $ %+ $, -., / ", 0, %, %%%%, " % 2 %% #. $ 3 *3 %45 6" %% 9: :" : "

实 信 用 的 原 则 " 其 中, 诚 实 信 用 原 则 是 指 民 事 主 体 进 行 民 事 活 动 时, 均 应 诚 实, 不 作 假, 不 欺 诈, 不 损 害 他 人 利 益 和 社 会 利 益, 正 当 地 行 使 权 利 和 履 行 义 务 甲 将 平 房 售 与 丙 而 未 告

第三章 相图基础

3!)4 +!*5")+,*" "!7 *"954#!767 ()9)"4 %7*"!76 #67:)+")5, "5 * 6*,;7 58 "%5 %77<4& =5%7>76 : 7 "5 4);,)8)+*," %7*<7,),; 58 "!7 +!*5")+,*" 67,:76


山东2014第四季新教材《会计基础》冲刺卷第三套

( )1

Microsoft Word - ZLI14A0-105

. (A) (B) (C) A (D) (E). (A)(B)(C)(D)(E) A

E. (A) (B) (C) (D). () () () (A) (B) (C) (D) (E). () () () (A) (B) (C) (D) (E). (A)(B)(C) (D) (E) (A) (B) (C) (D) (E) (A) (B)(C) (D) (E). (A) (B) (C)

種 類 左 淋 巴 總 管 ( 胸 管 ) 右 淋 巴 總 管 血 管 連 接 連 接 左 鎖 骨 下 靜 脈 連 接 右 鎖 骨 下 靜 脈 淋 巴 收 集 範 圍 左 上 半 身 及 下 半 身 淋 巴 液 右 上 半 身 淋 巴 液 長 度 很 長 很 短 (3) 循 環 路 徑 : (4)

B



Ps22Pdf

校园之星

就 构 成 了 盗 窃 罪 与 破 坏 交 通 设 施 罪 的 想 象 竞 合, 按 照 其 中 处 罚 较 重 的 犯 罪 处 罚 5. 答 案 :B 本 题 主 要 考 察 如 何 区 分 收 买 被 拐 卖 的 妇 女 儿 童 罪 与 拐 卖 妇 女 儿 童 罪 的 共 犯 问 题 ( 对 向

例 009 年高考 全国卷Ⅱ 理 8 如 图 直 三 棱 柱 ABC ABC 中 AB AC D E 分 别为 AA BC 的中点 DE 平面 BCC 证明 AB AC 设二面角 A BD C 为 0o 求 BC 与平面 BCD 所 成角的大小 图 - 略 证明 以 D 为坐标原点 DA DC DD

zyk00207zw.PDF

Ps22Pdf

第1題:答案D

! "#$! " # $%%& ($! )*+, -. %/. %(&%%$. 0!!#! "#! ##..! $# 1($! 2)3 $%%& %4&/&&!!!!!!!!!!! %(%. 5/%0/066!!! /! 6%%. 6(%. %046! (%%%((!!! 7889"" :::# 7

考 查 知 识 点 肝 气 疏 泄 调 畅 气 机 的 作 用, 主 要 表 现 在 以 下 几 个 方 面 :(1) 促 进 血 液 与 津 液 的 运 行 输 布 ;(2) 促 进 脾 胃 的 运 化 功 能 和 胆 汁 分 泌 排 泄 ;(3) 调 畅 情 志 ;(4) 促 进 男 子 排 精

: () (),, ; 30, 70, ( 10, 1, 10, ) A. B. C. D. [ ] 2. A. B. C. D. [ ] 3. A. B. C. D. [ ] 4. A.1775 B.1787 C.1674 D.1636 [ ]

<4D F736F F D203937A455B0AAA447B0EAA4E5ACECB4C1A5BDA6D22E646F63>

Microsoft Word - 烘焙食品乙級第二部份 doc

zt

Ps22Pdf



1 住 房 保 障 10BA 住 房 保 障 索 引 号 : / 主 题 名 称 : 住 房 保 障 发 文 单 位 : 中 华 人 民 共 和 国 住 房 和 城 乡 建 发 文 日 期 : , 中 华 人 民 共 和 国 民 政 部, 中

& ($ ) * +!"", &#!""#! +$ ) ( * +!"", - ($ ) * + % ($ ) * + * ), ($ ( # *$ ) ( + ) (. ($ / ($ ) ( * + &/ )! $!%

主 題 四 : 都 卜 勒 效 應 一 都 卜 勒 效 應 1. 現 象 : 當 波 源 與 觀 察 者 連 線 間 有 相 對 運 動 時, 聽 者 所 接 收 到 的 頻 率 ( 視 頻 ) 將 與 波 源 之 原 頻 率 不 同, 此 現 象 稱 為 都 卜 勒 效 應 例 如 站 於 路 旁

zt

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

!! "!!"#! # $ %&& ( "! )*+, " - &. - &/%%&& - 0!!$! "$! #$ - -! $$ 12.3! 4)5 %&& &.3 "3!!!!!!!!!!!! &/& - 0.&3.322!!!.! 2&& - 2/& - &362! /&&&//!!! 78

02所有分支机构的营业场所和电话.xls

Ps22Pdf

#$%&% () % ()*% +,-. /01 % + (/) " " " 2- %** -340 $%&% 5!$%&% () % ()*% +,-. /01 % + (/) " " " 2- %** -340 /64 7%,(8(, *--9( ()6 /-,%/,65 :$%&

!"# $%& ()) *+,+)-./01!"# $%& ()) *+,+)-./01!"#! "#$ 2!"# ):; 2!B! 2 "B # $ 2 %4 C C 2 &4 %D?<?4 6<5 2 (9D =6

!! "#$%&#%$ ((%)) *++*

科別

Transcription:

文件级恶意代码扫描引擎中的加壳识别技术 安天实验室 Swordlea 2003 年 12 月 25 日 在文件级恶意代码扫描引擎的设计与实现过程中, 加壳后样本的特征选取和识别是较为棘手的问题 恶意代码的制作者为了使其作品传播更广, 往往使用软件加壳的方式 样本被加壳以后, 其原有特征码被变形或彻底隐藏, 在一定程度中增加了样本分析与识别的难度 目前反病毒公司在对加壳后样本的处理上一般采用以下几种方式 : 1. 不加处理, 捕获流行样本, 直接在加壳后的样本上选取特征码, 例如 :Panda NAV 该方法比较简单, 只要样本分析人员不将特征码选取在壳程序自身即可, 能够在发现流行样本的第一时间作出快速响应, 可以作为大规模疫情的应急处理方案 其缺点是大大增加了样本特征库的记录数量, 尤其是在流行样本为多个加壳工具加壳或某个加壳工具多次加壳的情况下 2. 查毒程序预置流行加壳工具的对应脱壳模块, 例如 AVP 在 12 月 24 日升级后, 通过相关工具的分析, 可以发现其 unpack.avc 模块中, 集成了包括 TeLock UPX ASPack 在内的 1210 个脱壳模块 该方式要求反病毒公司对流行软件加壳工具及时了解 深入分析, 或者与相关软件的作者有较为密切的联系 3. 在虚拟机环境下, 利用被加壳样本程序自身的脱壳代码进行脱壳, 速度较慢 例如 : 瑞星 2003 提出的 智能解包还原技术 ( 对 UPX ASPack 等支持很好, 但对 telock asprotect 等效果有限 ) 4. 在真实环境下, 利用被加壳样本程序自身的脱壳代码进行脱壳 速度非常快, 但需要对加壳样本的脱壳代码进行精确校验, 否则可能被样本程序伪装欺骗 可是, 精确校验又会丧失对变形加壳代码的识别能力 下面以 UPX1.24 for win 加壳为例, 说明各处理方式的实现思路 首先, 使用 VC 6.0 的 AppWizard 生成 Dialog Based 应用程序 test, 编译 Release 版后, 得到 20,480 字节的 test.exe 其 MZ/PE 头信息如下 : 00000000 4D 5A 90 00 03 00 00 00-04 00 00 00 FF FF 00 00 MZ... 00000010 B8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00...@... 00000020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 00000030 00 00 00 00 00 00 00 00-00 00 00 00 D8 00 00 00... 00000040 0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68...!..L.!Th 00000050 69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F is program canno 00000060 74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20 t be run in 安天实验室版权所有第 1 页 / 共 9 页

DOS 00000070 6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00 mode...$... 00000080 FB C6 9A 8E BF A7 F4 DD-BF A7 F4 DD BF A7 F4 DD... 00000090 DD B8 E7 DD BB A7 F4 DD-3C BB FA DD BE A7 F4 DD...<... 000000A0 57 B8 FE DD B4 A7 F4 DD-57 B8 F0 DD BA A7 F4 DD 000000B0 BF A7 F5 DD CC A7 F4 DD-57 B8 FF DD B9 A7 F4 DD 000000C0 07 A1 F2 DD BE A7 F4 DD-52 69 63 68 BF A7 F4 DD 000000D0 00 00 00 00 00 00 00 00-50 45 00 00 4C 01 04 00 000000E0 6B 49 EA 3F 00 00 00 00-00 00 00 00 E0 00 0F 01 W...W......W......Rich......PE..L... ki.?... 000000F0 0B 01 06 00 00 10 00 00-00 30 00 00 00 00 00 00...0... 00000100 E0 16 00 00 00 10 00 00-00 20 00 00 00 00 40 00......@. 00000110 00 10 00 00 00 10 00 00-04 00 00 00 00 00 00 00... 00000120 04 00 00 00 00 00 00 00-00 50 00 00 00 10 00 00...P... 00000130 00 00 00 00 02 00 00 00-00 00 10 00 00 10 00 00... 00000140 00 00 10 00 00 10 00 00-00 00 00 00 10 00 00 00... 00000150 00 00 00 00 00 00 00 00-A8 25 00 00 64 00 00 00...%..d... 00000160 00 40 00 00 A0 0A 00 00-00 00 00 00 00 00 00 00.@... 00000170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 00000180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 00000190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001B0 00 20 00 00 DC 01 00 00-00 00 00 00 00 00 00 00.... 000001C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001D0 2E 74 65 78 74 00 00 00-42 09 00 00 00 10 00 00.text...B... 000001E0 00 10 00 00 00 10 00 00-00 00 00 00 00 00 00 00... 000001F0 00 00 00 00 20 00 00 60-2E 72 64 61 74 61 00 00.....`.rdata.. 00000200 B6 09 00 00 00 20 00 00-00 10 00 00 00 20 00 00........ 对该程序开始部分进行反汇编, 得到反汇编代码如下 同时可以看到入口点为 16E0 004016E0 >PUSH EBP 004016E1 MOV EBP,ESP 004016E3 PUSH -1 004016E5 PUSH test.004024f8 004016EA PUSH <JMP.&MSVCRT._except_handler3> ; SE handler installation 004016EF MOV EAX,DWORD PTR FS:[0] 004016F5 PUSH EAX 安天实验室版权所有第 2 页 / 共 9 页

004016F6 MOV DWORD PTR FS:[0],ESP 004016FD SUB ESP,68 00401700 PUSH EBX 00401701 PUSH ESI 00401702 PUSH EDI 00401703 MOV DWORD PTR SS:[EBP-18],ESP 00401706 XOR EBX,EBX 00401708 MOV DWORD PTR SS:[EBP-4],EBX 0040170B PUSH 2 0040170D CALL DWORD PTR DS:[<&MSVCRT. set_app_ty>; MSVCRT. set_app_type 00401713 POP ECX 使用 UPX1.24 对其加壳, 加壳后, 前 512 字节内容如下 : 00000000 4D 5A 90 00 03 00 00 00-04 00 00 00 FF FF 00 00 MZ... 00000010 B8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00...@... 00000020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 00000030 00 00 00 00 00 00 00 00-00 00 00 00 D8 00 00 00... 00000040 0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68...!..L.!Th 00000050 69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F is program canno 00000060 74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20 t be run in DOS 00000070 6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00 mode...$... 00000080 FB C6 9A 8E BF A7 F4 DD-BF A7 F4 DD BF A7 F4 DD... 00000090 DD B8 E7 DD BB A7 F4 DD-3C BB FA DD BE A7 F4 DD...<... 000000A0 57 B8 FE DD B4 A7 F4 DD-57 B8 F0 DD BA A7 F4 DD 000000B0 BF A7 F5 DD CC A7 F4 DD-57 B8 FF DD B9 A7 F4 DD 000000C0 07 A1 F2 DD BE A7 F4 DD-52 69 63 68 BF A7 F4 DD 000000D0 00 00 00 00 00 00 00 00-50 45 00 00 4C 01 03 00 000000E0 6B 49 EA 3F 00 00 00 00-00 00 00 00 E0 00 0F 01 000000F0 0B 01 06 00 00 10 00 00-00 10 00 00 00 50 00 00 W...W......W......Rich......PE..L... ki.?......p.. 00000100 B0 69 00 00 00 60 00 00-00 70 00 00 00 00 40 00.i...`...p...@. 00000110 00 10 00 00 00 02 00 00-04 00 00 00 00 00 00 00... 00000120 04 00 00 00 00 00 00 00-00 80 00 00 00 10 00 00... 00000130 00 00 00 00 02 00 00 00-00 00 10 00 00 10 00 00... 安天实验室版权所有第 3 页 / 共 9 页

00000140 00 00 10 00 00 10 00 00-00 00 00 00 10 00 00 00... 00000150 00 00 00 00 00 00 00 00-DC 78 00 00 F8 00 00 00...x... 00000160 00 70 00 00 DC 08 00 00-00 00 00 00 00 00 00 00.p... 00000170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 00000180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 00000190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00... 000001D0 55 50 58 30 00 00 00 00-00 50 00 00 00 10 00 00 UPX0...P... 000001E0 00 00 00 00 00 04 00 00-00 00 00 00 00 00 00 00... 000001F0 00 00 00 00 80 00 00 E0-55 50 58 31 00 00 00 00...UPX1... 00000200 00 10 00 00 00 60 00 00-00 0C 00 00 00 04 00 00...`... 加壳后, 其入口部分反汇编代码如下, 入口点为 69B0 004069B0 > PUSHAD 004069B1 004069B6 004069BC 004069BD MOV ESI,test.00406000 LEA EDI,DWORD PTR DS:[ESI+FFFFB000] PUSH EDI OR EBP,FFFFFFFF 004069C0 JMP SHORT test.004069d2 ; EB 10 004069C2 NOP ; 90 004069C3 NOP ; 90 004069C4 004069C5 004069C6 004069C7 004069C8 004069CA 004069CB 004069CD NOP ; 以上三条指令的机器码可以作为快速判定加壳器依据 NOP NOP NOP MOV AL,BYTE PTR DS:[ESI] ; 取密文, 始于文件偏移 0x400 处 INC ESI MOV BYTE PTR DS:[EDI],AL ; 解压缓冲区 004069CE ; EBX 为当前实例句柄 004069D0 004069D2 004069D4 004069D7 004069D9 JNZ SHORT test.004069d9 JB SHORT test.004069c8 安天实验室版权所有第 4 页 / 共 9 页

004069DB 004069E0 004069E2 004069E4 004069E6 004069E9 004069EB 004069ED 004069EF 004069F1 004069F3 004069F5 004069F8 004069FA 004069FC 004069FE 00406A01 00406A03 00406A06 00406A08 00406A09 00406A0C 00406A0E 00406A10 00406A12 00406A14 00406A16 00406A19 00406A1B 00406A1D 00406A1F 00406A21 00406A23 00406A26 00406A28 00406A2A MOV EAX,1 JNZ SHORT test.004069eb ADC EAX,EAX JNB SHORT test.004069e0 JNZ SHORT test.004069fc JNB SHORT test.004069e0 XOR ECX,ECX SUB EAX,3 JB SHORT test.00406a10 SHL EAX,8 MOV AL,BYTE PTR DS:[ESI] INC ESI XOR EAX,FFFFFFFF JE SHORT test.00406a82 MOV EBP,EAX JNZ SHORT test.00406a1b ADC ECX,ECX JNZ SHORT test.00406a28 ADC ECX,ECX JNZ SHORT test.00406a4c 安天实验室版权所有第 5 页 / 共 9 页

00406A2C 00406A2D 00406A2F 00406A31 00406A33 00406A36 00406A38 00406A3A 00406A3C 00406A3E 00406A40 00406A42 00406A45 00406A47 00406A49 00406A4C 00406A52 00406A55 00406A58 00406A5B 00406A5D 00406A5F 00406A60 00406A62 00406A63 00406A64 00406A66 00406A6B INC ECX JNZ SHORT test.00406a38 ADC ECX,ECX JNB SHORT test.00406a2d JNZ SHORT test.00406a49 JNB SHORT test.00406a2d ADD ECX,2 CMP EBP,-0D00 ADC ECX,1 LEA EDX,DWORD PTR DS:[EDI+EBP] CMP EBP,-4 JBE SHORT test.00406a6c MOV AL,BYTE PTR DS:[EDX] INC EDX MOV BYTE PTR DS:[EDI],AL DEC ECX JNZ SHORT test.00406a5d JMP test.004069ce NOP 00406A6C MOV EAX,DWORD PTR DS:[EDX] ; 从缓冲区复制 00406A6E ADD EDX,4 00406A71 MOV DWORD PTR DS:[EDI],EAX ; 写入应用程序空间 00406A73 00406A76 00406A79 00406A7B 00406A7D ADD EDI,4 SUB ECX,4 JA SHORT test.00406a6c ADD EDI,ECX JMP test.004069ce 安天实验室版权所有第 6 页 / 共 9 页

00406A82 00406A83 00406A85 00406A8A 00406A8C 00406A8D 00406A8F 00406A91 00406A93 00406A96 00406A98 00406A9A 00406A9D 00406AA1 00406AA4 00406AA6 00406AA8 00406AAB POP ESI MOV EDI,ESI MOV ECX,36 MOV AL,BYTE PTR DS:[EDI] SUB AL,0E8 CMP AL,1 JA SHORT test.00406a8a CMP BYTE PTR DS:[EDI],1 JNZ SHORT test.00406a8a MOV EAX,DWORD PTR DS:[EDI] MOV BL,BYTE PTR DS:[EDI+4] SHR AX,8 ROL EAX,10 XCHG AH,AL SUB EAX,EDI SUB BL,0E8 ADD EAX,ESI 00406AAD MOV DWORD PTR DS:[EDI],EAX ; 写入应用程序空间 00406AAF 00406AB2 00406AB4 00406AB6 00406ABC 00406ABE 00406AC0 00406AC2 00406AC5 00406ACC 00406ACE 00406ACF ADD EDI,5 MOV EAX,EBX LOOPD SHORT test.00406a8f LEA EDI,DWORD PTR DS:[ESI+4000] MOV EAX,DWORD PTR DS:[EDI] OR EAX,EAX JE SHORT test.00406b07 MOV EBX,DWORD PTR DS:[EDI+4] LEA EAX,DWORD PTR DS:[EAX+ESI+68DC] ; 加载应用程序引入的 DLL ADD EBX,ESI PUSH EAX ADD EDI,8 00406AD2 CALL DWORD PTR DS:[ESI+6940] ; KERNEL32.LoadLibraryA 00406AD8 00406AD9 00406ADB 00406ADC XCHG EAX,EBP MOV AL,BYTE PTR DS:[EDI] OR AL,AL 安天实验室版权所有第 7 页 / 共 9 页

00406ADE 00406AE0 00406AE2 00406AE4 00406AE7 00406AE8 00406AE9 00406AEA 00406AEB 00406AEC 00406AED 00406AEF 00406AF0 00406AF6 00406AF8 00406AFA 00406AFC 00406AFF 00406B01 00406B07 JE SHORT test.00406abc MOV ECX,EDI JNS SHORT test.00406aeb MOVZX EAX,WORD PTR DS:[EDI] PUSH EAX DB B9 PUSH EDI DEC EAX REPNE SCAS BYTE PTR ES:[EDI] ; 导入表中各函数 PUSH EBP CALL DWORD PTR DS:[ESI+6944] ; KERNEL32.GetProcAddress OR EAX,EAX JE SHORT test.00406b01 MOV DWORD PTR DS:[EBX],EAX ADD EBX,4 JMP SHORT test.00406ad9 CALL DWORD PTR DS:[ESI+6948] ; 失败, 调用 KERNEL32.ExitProcess POPAD 00406B08 JMP test.004016e0 ; 跳到原入口点当跟踪执行到 00406B08 处时, 可以在 004016E0 处找到如下代码 : 004016E0 >PUSH EBP 004016E1 MOV EBP,ESP 004016E3 PUSH -1 004016E5 PUSH test.004024f8 004016EA PUSH <JMP.&MSVCRT._except_handler3> ; SE handler installation 即是加壳前 test 程序入口代码 在对加壳器的识别上不应该寄希望于判断节名 目前有许多加壳器的修补工具可以修改节名及其它大部分特征 比较快速的方法是匹配代码段附近的若干字节, 例如 UPX1.24 加壳后固定在代码段偏移 0x10 处有 DWORD 值 0x909010EB, 就可以作为该版 UPX 的识别依据, 而比较谨慎的方法是匹配脱壳代码的 MD5 或 CRC32 校验值 参照前面说过的几种处理方式, 对于该版本 UPX 加壳的可执行文件可以分别作如下处理 : 安天实验室版权所有第 8 页 / 共 9 页

若采用第一种方式, 即直接在加壳后的样本上选取特征码, 可以把特征码取在 0x400 处以后的若干字节 ; 若采用第二种方式, 即预置脱壳模块, 则可以根据上面的反汇编代码很容易地写出针对该版本 UPX 的脱壳模块 ( 由于只需要实现加壳代码的还原,00406AC2 以下的部分可以不必关心 ); 若采用第三种方式, 即在虚拟机环境下利用被加壳样本程序自身的脱壳代码进行脱壳, 应该首先快速地判断加壳工具 ( 比如使用脱壳代码中的某些固定指令 ), 然后执行该种脱壳代码所需的脱壳步数或有限的步数, 再对脱壳缓冲区进行特征码匹配 ; 若采用第四种方式, 即在真实环境下利用被加壳样本程序自身的脱壳代码进行脱壳, 应该首先准确地判断加壳工具 ( 比如使用脱壳代码的 MD5 或 CRC32 校验值 ), 然后执行该种脱壳代码所需的脱壳步数, 再对脱壳缓冲区进行特征码匹配 考虑到多次加壳的情况, 扫描引擎的处理流程应如下设计 : 安天实验室版权所有第 9 页 / 共 9 页