CN102184363A - 基于综合处理的软件壳自动脱壳方法 - Google Patents
基于综合处理的软件壳自动脱壳方法 Download PDFInfo
- Publication number
- CN102184363A CN102184363A CN2011101325878A CN201110132587A CN102184363A CN 102184363 A CN102184363 A CN 102184363A CN 2011101325878 A CN2011101325878 A CN 2011101325878A CN 201110132587 A CN201110132587 A CN 201110132587A CN 102184363 A CN102184363 A CN 102184363A
- Authority
- CN
- China
- Prior art keywords
- breakpoint
- parameter
- software
- shell
- user32
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
- Agricultural Chemicals And Associated Chemicals (AREA)
Abstract
本发明属于网络安全领域中对带保护壳的恶意软件进行脱壳处理的方法,包括初始化处理,获取加壳恶意软件的原始入口点参数和断点位置参数,获取输入表,待脱壳软件的转储及脱壳后软件的获取。该发明将可用于恶意软件加壳保护的壳特征参数作为鉴别恶意软件壳特征的依据;在待脱壳的恶意软件输入内存系统后、首先找出原始入口点参数及对应的各断点位置参数,再按所得各断点位置参数对待脱壳软件进行运行调试、得到输入表,然后再通过原始入口点参数及输入表对待脱壳软件进行修复,以获得脱壳后的恶意软件;因而该发明具有可对加壳保护的恶意软件进行自动脱壳处理,还原恶意软件加壳前的可执行状况,为对恶意软件的分析处理清除其保护屏障等特点。
Description
技术领域
本发明属于网络安全技术领域,特别是一种针对设有保护壳的恶意软件进行脱壳处理的方法;采用本发明方法可对恶意软件进行自动脱壳处理、还原恶意软件在壳保护之前的可执行状态,以方便继后对恶意软件的分析处理。
背景技术
壳是一种对计算机软件进行保护的常用手段。十几年来,各式各样的软件保护壳(程序)的出现对计算机正常软件的保护起到重要作用;但软件保护壳是一把双刃剑,既可用于保护正常软件、也可用于保护恶意软件。恶意软件通过保护壳把恶意程序(代码)伪装成正常程序,当用户运行此类程序时、在不知不觉中就执行了恶意程序,这些恶意程序的行为通常是窃取数据、破坏数据、发送垃圾邮件、运行其他恶意代码指定的程序等等,轻则干扰正常程序的运行、重则造成恶性事故。利用各种保护壳,恶意程序还可以躲过传统的特征杀毒,并且给恶意程序(软件)的分析和检测带来诸多困难。要分析恶意程序的特点、进而找出检测方法,必须对其进行脱壳处理;由于软件壳技术的理论研究尚不完善,因此还没有通用的自动脱壳工具,这就为恶意程序在各类保护壳的掩护下运行提供了条件,从而给计算机的正常运行、给社会正常的经济活动、通讯,甚至国家的安全造成严重威胁。
发明内容
本发明的目的是针对各类可能用于对恶意软件进行保护的软件壳,研究设计一种基于综合处理的软件可自动脱壳方法,达到对加壳保护的恶意软件、通过多层次的综合处理,找出其壳特征并根据其壳特征进行自动脱壳处理,还原软件加壳前的可执行状况,以便进行后续分析处理的目的。
本发明的解决方案是首先将可用于恶意软件加壳保护的各组(种)壳的壳特征参数(包括:原始入口点参数及对应的全部断点位置参数)分别录入(初始化入)壳特征数据库内、作为鉴别加壳恶意软件壳特征的依据待用;在待脱壳的恶意软件输入内存系统后、即将待脱壳的软件分别与录入(初始化入)壳特征数据库内的各原始入口点参数进行对比搜索,以找出与原始入口点参数以及对应的各断点位置参数,再按所得各断点位置参数对待脱壳软件进行运行调试、得到输入表各参数,然后再使用该原始入口点参数及所得输入表各参数对待脱壳软件进行修复,最后获得脱壳后的恶意软件,从而实现其发明目的。因而,本发明的方法包括:
步骤1.初始化处理:将各组带保护壳软件的壳特征参数中的原始入口点参数及与该原始入口点参数对应的全部断点位置参数、逐一按类录入壳特征数据库内、待用;
步骤2.获取加壳恶意软件的原始入口点参数和断点位置参数:将待脱壳的恶意软件输入内存系统后,与壳特征库中的各原始入口点参数进行逐一比对处理,以获得待脱壳的恶意软件的原始入口点参数,并记录该原始入口点参数及所对应的全部断点位置参数,分别存储、备用;
步骤3.获取输入表数据:在步骤2获得的各断点位置数据处,采用断点回调函数(的方式)跟踪待脱壳软件的运行、调试,并随时记录回调函数给出的输入表各参数数据;当输入表参数收集完毕后、停止对待脱壳软件的运行、调试,同时存储备用;
步骤4.待脱壳软件的转储:将待脱壳软件从内存中转储到硬盘上;
步骤5.脱壳后软件的获取:使用从步骤2所得、备用的原始入口点参数和步骤3获取并存储备用的输入表各参数,对经步骤4转储到硬盘上的待脱壳的软件进行修复处理,修复后即得可直接用于分析的(脱壳后的)软件。
所述各组原始入口点参数及与该原始入口点参数对应的全部断点位置参数(其中“??”为占位符号),包括:
一.原始入口点参数为:60 BE?? ?? ?? ?? BF ?? ?? ?? ?? FC B2 80 33 DB A4 B3 02 E86D ?? ?? ?? 73 F6 33 C9 E8 64 ?? ?? ?? 73 1C 33 C0 E8 5B ?? ?? ?? 73 23 B3 02 41 B0 10 E84F ?? ?? ?? 12 C0 73 F7 75 3F AA EB D4 E8 4D ?? ?? ?? 2B CB 75 10 E8 42 ?? ?? ?? EB 28 ACD1 E8 74 4D 13 C9 EB 1C 91 48 C1 E0 08 AC E8 2C ?? ?? ?? 3D ?? 7D ?? ?? 73 0A 80 FC 05 7306 83 F8 7F 77 02 41 41 95 8B C5 B3 01 56 8B F7 2B F0 F3 A4 5E EB 8E 02 D2 75 05 8A 16 4612 D2 C3 33 C9 41 E8 EE FF FF FF 13 C9 E8 E7 FF FF FF 72 F2 C3 BE ?? 10 40 ?? B9 04 ?? ?? ??8B F9 81 FE ?? ?? ?? ?? 7F 10 AC 47 04 18 2C 02 73 F0 29 3E 03 F1 03 F9 EB E8 BA ?? ?? 40 ??8D B2 ?? ?? ?? ?? 8B 46 0C 85 C0 74 51 03 C2 8B 7E 10 8B 1E 85 DB 75 02 8B DF 03 DA 03 FA52 57 50 FF 15 ?? ?? ?? ?? 5F 5A 85 C0 74 2F 8B C8 8B 03 85 C0 74 22 0F BA F0 1F 72 04 8D 4410 02 51 52 57 50 51 FF 15 ?? ?? ?? ?? 5F 5A 59 85 C0 74 0B AB 83 C3 04 EB D8 83 C6 14 EBAA 61 C3 61 E9
及对应的断点位置参数:
断点1:525750FF15????????5F5A,
断点2:5152575051FF15????????5F5A59,
断点3:61C361E9;
或
二.原始入口点参数:60 68 ?? ?? ?? ?? 68 ?? 10 40 ?? 68 ?? ?? ?? ?? E8 81 07 ?? ??BE ?? 10 40 ?? B9 04 ?? ?? ?? 8B F9 81 FE ?? ?? ?? ?? 7F 10 AC 47 04 18 2C 02 73 F029 3E 03 F1 03 F9 EB E8 BA ?? ?? 40 ?? 8D B2 ?? ?? ?? ?? 8B 46 0C 85 C0 74 51 03 C28B 7E 10 8B 1E 85 DB 75 02 8B DF 03 DA 03 FA 52 57 50 FF 15 ?? ?? ?? ?? 5F 5A 85 C074 2F 8B C8 8B 03 85 C0 74 22 0F BA F0 1F 72 04 8D 44 10 02 51 52 57 50 51 FF 15 ?? ?? ?? ??5F 5A 59 85 C0 74 0B AB 83 C3 04 EB D8 83 C6 14 EB AA 61 C3 61 E9 ?? ?? ?? ?? 8B 0803 48 04 B8 ?? 03 ?? ?? D3 E0 05 36 07 ?? ?? C3 8B 10 3B 50 04 75 0C C7 40 10 01 ?? ?? ??B2 FF 8B C2 C3 8B 10 8A 12 FF ?? 8B C2 C3 53 56 8B D8 89 13 03 CA 89 4B 04 33 C0 8943 10 33 C0 89 43 0C C7 43 08 FF FF FF FF BE 05 ?? ?? ?? 8B C3 E8 BC FF FF FF 25 FF ?? ?? ??8B 53 0C C1 E2 08 0B C2 89 43 0C 4E 75 E6 5E 5B C3 53 56 57 55 51 89 04 24 8B 1C 248B 5B 08 8B 34 24 8B 76 0C 33 ED 8B FA 85 FF 7E 2F D1 EB 03 ED 3B DE 77 05 2B F3 83CD 01 81 FB ?? ?? ?? 01 73 17 C1 E3 08 8B 04 24 E8 6A FF FF FF 25 FF ?? ?? ?? C1 E608 0B C6 8B F0 4F 75 D1 8B 04 24 89 58 08 8B 04 24 89 70 0C 8B C5 5A 5D 5F 5E 5B C353 56 57 55 8B F8 8B 5F 08 8B 77 0C 8B CB C1 E9 0B 8B 02 0F AF C8 3B CE 76 12 8B D9B9 ?? 08 ?? ?? 2B C8 C1 E9 05 01 0A 33 ED EB 0E 2B F1 2B D9 C1 E8 05 29 02 BD 01 ?? ?? ??81 FB ?? ?? ?? 01 73 16 8B C7 E8 FE FE FF FF 25 FF ?? ?? ?? C1 E6 08 0B C6 8B F0 C1E3 08 89 5F 08 89 77 0C 8B C5 5D 5F 5E 5B C3 53 56 57 55 51 89 0C 24 8B EA 8B F8 BB01 ?? ?? ?? 8B 34 24 85 F6 7E 14 8D 54 9D ?? 8B C7 E8 78 FF FF FF 03 DB 0B C3 8B D84E 75 EC 8B 0C 24 B8 01 ?? ?? ?? D3 E0 50 8B C3 5A 2B C2 5A 5D 5F 5E 5B C3 53 56 5755 81 C4 F4 FF FF FF 89 4C 24 08 89 54 24 04 89 04 24 33 ED BB 01 ?? ?? ?? 8B 74 2408 4E 85 F6 7C 20 46 33 FF 8B 44 24 04 8D 14 98 8B 04 24 E8 22 FF FF FF 03 DB 0B D88B CF D3 E0 0B E8 47 4E 75 E3 8B C5 83 C4 0C 5D 5F 5E 5B C3 53 56 57 8B FA 8B F0 BB01 ?? ?? ?? 8D 14 9F 8B C6 E8 F4 FE FF FF 03 DB 0B C3 8B D8 81 FB ?? 01 ?? ?? 7C E88B C3 5F 5E 5B C3 53 56 57 55 51 88 0C 24 8B FA 8B F0 BB 01 ?? ?? ?? 0F B6 2C 24 C1ED 07 83 E5 01 D0 24 24 8B C5 C1 E0 08 05 ?? 01 ?? ?? 03 C3 8D 14 87 8B C6 E8 AC FEFF FF 03 DB 0B D8 3B C5 74 22 81 FB ?? 01 ?? ?? 7D 22 8D 14 9F 8B C6 E8 92 FE FF FF03 DB 0B C3 8B D8 81 FB ?? 01 ?? ?? 7C E8 EB 08 81 FB ?? 01 ?? ?? 7C AB 8B C3 5A 5D5F 5E 5B C3 53 56 57 55 8B E9 8B F2 8B D8 8B FE 8B D7 8B C3 E8 5D FE FF FF 85 C0 7517 C1 E5 03 83 C5 02 8D 14 AF 8B C3 B9 03 ?? ?? ?? E8 A9 FE FF FF EB 40 8D 57 04 8BC3 E8 38 FE FF FF 85 C0 75 1D C1 E5 03 81 C5 82 ?? ?? ?? 8D 14 AF 8B C3 B9 03 ?? ?? ??E8 81 FE FF FF 83 C0 08 EB 15 8D 97 08 04 ?? ?? 8B C3 B9 08 ?? ?? ?? E8 6A FE FF FF83 C0 10 5D 5F 5E 5B C3 8A 12 80 FA E1 72 03 33 C0 C3 33 C9 89 48 08 80 FA 2D 72 0B80 EA 2D FF 40 08 80 FA 2D 73 F5 33 C9 89 48 04 80 FA 09 72 0B 80 EA 09 FF 40 04 80FA 09 73 F5 81 E2 FF ?? ?? ?? 89 10 B0 01 C3
及对应的断点位置参数:
断点1:525750FF15????????5F5A
断点2:5152575051FF15????????5F5A59
断点3:61C361E9;
或
三.原始入口点参数:83 7C 24 08 01 0F 85 28 01 ?? ?? 60 68 ?? ?? ?? ?? 68 ?? ?? ?? ??68 ?? ?? ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B F9 81 FE ?? ?? ?? ??7F 10 AC 47 04 ?? 2C ?? 73 F0 29 3E 03 F1 03 F9 EB E8 BB ?? ?? ?? ?? BA ?? ?? ?? ??BE ?? ?? ?? ?? 85 F6 74 78 B9 ?? ?? ?? ?? E3 71 8B 6C 33 ?? 8B 4C 33 04 E3 67 81 E908 ?? ?? ?? 81 C6 08 ?? ?? ?? 0F B7 04 33 8B F8 81 E7 ?? ?? ?? ?? 03 FD C1 E8 ?? 4874 0B 48 74 13 48 74 16 48 74 18 EB 32 52 C1 EA ?? 66 01 14 3B 5A EB 27 66 01 14 3BEB 21 01 14 3B EB 1C 83 C6 02 83 E9 02 8B 44 3B FE 66 8B 04 33 8D 84 15 ?? ?? ?? ??C1 E8 ?? 66 89 14 3B 83 C6 02 83 E9 02 75 A7 EB 8F BA ?? ?? ?? ?? 8D B2 ?? ?? ?? ??8B 46 0C 85 C0 74 51 03 C2 8B 7E ?? 8B 1E 85 DB 75 02 8B DF 03 DA 03 FA 52 57 50 FF15 ?? ?? ?? ?? 5F 5A 85 C0 74 2F 8B C8 8B 03 85 C0 74 22 0F BA F0 ?? 72 04 8D 44 10 ??51 52 57 50 51 FF 15 ?? ?? ?? ?? 5F 5A 59 85 C0 74 0B AB 83 C3 04 EB D8 83 C6 14 EBAA 61 C3 61 E9 ?? ?? ?? ?? 8B 08 03 48 04 B8 ?? 03 ?? ?? D3 E0 05 36 07 ?? ?? C3 8B10 3B 50 04 75 0C C7 40 10 01 ?? ?? ?? B2 FF 8B C2 C3 8B 10 8A 12 FF ?? 8B C2 C3 5356 8B D8 89 13 03 CA 89 4B 04 33 C0 89 43 10 33 C0 89 43 0C C7 43 08 FF FF FF FF BE05 ?? ?? ??8B C3 E8 BC FF FF FF 25 FF ?? ?? ?? 8B 53 0C C1 E2 08 0B C2 89 43 0C 4E75 E6 5E 5B C3
及对应的断点位置参数:
断点1:525750FF15????????5F5A
断点2:5152575051FF15????????5F5A59
断点3:61C361E9;
或
四.原始入口点参数:87 25 ?? ?? ?? ?? 61 94 55 A4 B6 80 FF 13 73 F9 33 C9 FF 13 73 16 33C0 FF 13 73 1F B6 80 41 B0 10 FF 13 12 C0 73 FA 75 3A AA EB E0 FF 53 08 02 F6 83 D9 01 750E FF 53 04 EB 24 AC D1 E8 74 2D 13 C9 EB 18 91 48 C1 E0 08 AC FF 53 04 3B 43 F8 73 0A80 FC 05 73 06 83 F8 7F 77 02 41 41 95 8B C5 B6 ?? 56 8B F7 2B F0 F3 A4 5E EB 9F 5E AD 97AD 50 FF 53 10 95 8B 07 40 78 F3 75 03 FF 63 0C 50 55 FF 53 14 AB EB EE 33 C9 41 FF 13 13C9 FF 13 72 F8 C3 02 D2 75 05 8A 16 46 12 D2 C3
及对应的断点位置参数:
断点1:AD50FF53??95
断点2:5055FF53??AB
断点3:75??FF630C;
或
五.原始入口点参数:4D 5A BE ?? ?? ?? ?? 8B DE AD AD 50 AD 97 B2 80 A4 B6 80 FF 1373 F9 33 C9 FF 13 73 16 33 C0 FF 13 73 21 B6 80 41 B0 10 FF 13 12 C0 73 FA 75 3E AA EB E0E8 76 6E ?? ?? 02 F6 83 D9 01 75 0E FF 53 FC EB 26 AC D1 E8 74 2F 13 C9 EB 1A 91 48 C1 E008 AC FF 53 FC 3D ?? ?? ?? ?? 73 0A 80 FC 05 73 06 83 F8 7F 77 02 41 41 95 8B C5 B6 ?? 56 8BF7 2B F0 F3 A4 5E EB 9B AD 85 C0 75 90 AD 96 AD 97 56 AC 3C ?? 75 FB FF 53 F0 95 56 AD0F C8 40 59 74 EC 79 07 AC 3C ?? 75 FB 91 40 50 55 FF 53 F4 AB 85 C0 75 E5 C3
及对应的断点位置参数:
断点1:56AC3C0075FBFF53F0
断点2:405055FF53F4AB85C0
断点3:AB85C075E5C3
断点4:5E59E2B1ADFFE09148;
或
六.原始入口点参数:4D 5A BE ?? ?? ?? ?? AC 91 AD 95 AD 92 AD 51 56 87 F2 97 FC B280 33 DB A4 B3 02 FF 55 04 73 F8 33 C9 FF 55 04 73 18 33 C0 FF 55 04 73 1F B3 02 41 B0 10FF 55 04 12 C0 73 F9 75 4F AA EB DC E8 5D ?? ?? ?? 2B CB 75 17 FF 55 08 EB 35 AC D1 E874 04 13 C9 EB 23 87 F2 5E 59 E2 B1 AD FF E0 91 48 C1 E0 08 AC FF 55 08 3D ?? ?? ?? ??730A 80 FC 05 73 06 83 F8 7F 77 02 41 41 55 87 FD AB 87 FD 5D 55 87 F5 AD 87 F5 5D B3 01 568B F7 2B F0 F3 A4 5E EB 86 02 D2 75 05 8A 16 46 12 D2 C3 33 C9 41 FF 55 04 13 C9 FF 55 0472 F6 C3
及对应的断点位置参数:
断点1:56AC3C0075FBFF53F0
断点2:405055FF53F4AB85C0
断点3:AB85C075E5C3
断点4:5E59E2B1ADFFE09148;
或
七.原始入口点参数(数据):E9 F5 00 00 00 0D 0A C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 0D 0A 20 50 65 58 20 28 63 29 20 62 79 20 62 61 72 74 5E43 72 61 63 6B 50 6C 20 62 65 74 61 20 72 65 6C 65 61 73 65 20 20 20 20 20 20 20 20 20 20 2020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0D0A C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 0D 0A 60 E801 00 00 00 E8 83 C4 04 E8 01 00 00 00
及对应的断点位置参数:
断点1:5A5E0E56CB
断点2:50E801000000??83C404A1????????E8????????FFD085C0
断点3:83C40481E3FFFFFF7F53FFB5????????E801000000??83C404A1
断点4:6A??59F3A4C3
断点5:68????????EB01C7584050C3
断点6:68????????EB01C7584050C3;
或
八.原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ?? 60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ??C7 87 ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 00 00 00 01 DB75 07 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ?? 75 ?9 8B 1E 83 EE FC 11 DB 73 E4 31 C9 83 E803 72 0D C1 E0 08 8A 06 46 83 F0 FF 74 74 89 C5 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 75 20 41 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01DB 73 EF 75 09 8B 1E 83 EE FC 11 DB 73 E4 83 C1 02 81 FD 00 F3 FF FF 83 D1 01 8D 14 2F83 FD FC 76 0F 8A 02 42 88 07 47 49 75 F7 E9 63 FF FF FF 90 8B 02 83 C2 04 89 07 83 C7 0483 E9 04 77 F1 01 CF E9 01
及对应的断点位置参数:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9;
或
九.原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ?? 60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ??C7 87 ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 00 00 00 01 DB75 07 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ?? 75 ?9 8B 1E 83 EE FC 11 DB 72 10 48 01 DB 7507 8B 1E 83 EE FC 11 DB 11 C0 EB D4 31 C9 83 E8 03 72 11 C1 E0 08 8A 06 46 83 F0 FF 74 78D1 F8 89 C5 EB 0B 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01 DB 75 07 8B 1E 83 EE FC 11DB 11 C9 75 20 41 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01 DB 73 EF 75 09 8B 1E 83 EEFC 11 DB 73 E4 83 C1 02 81 FD 00 FB FF FF 83 D1 01 8D 14 2F 83 FD FC 76 0F 8A 02 42 88 0747 49 75 F7 E9 01
及对应的断点位置参数:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9;
或
十.原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ?? 60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ??C7 87 ?? ?? ?? ?? ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 0000 00 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ?? 75 ?9 8B 1E 83 EE FC 11 DB
及对应的断点位置参数:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9。
所述采用断点回调函数为采用拦截窗口函数、拦截对话框函数、拦截注册表函数、拦截驱动函数以及可返回调用断点位置函数地址的函数中的一种或几种。
本发明由于将可用于恶意软件加壳保护的各类(种)壳的壳特征参数(包括:原始入口点参数及对应的全部断点位置参数)分别录入(初始化入)壳特征数据库内、作为鉴别加壳恶意软件壳特征的依据;在待脱壳的恶意软件输入内存系统后、即将待脱壳的软件分别与录入(初始化入)壳特征数据库内的各原始入口点参数进行对比搜索,以找出与原始入口点参数以及对应的各断点位置参数,再按所得各断点位置参数对待脱壳软件进行运行调试、得到输入表各参数,然后再使用该原始入口点参数及所得输入表各参数对待脱壳软件进行修复,最后获得脱壳后的恶意软件;因而本发明具有可对加壳保护的恶意软件进行自动脱壳处理,还原恶意软件加壳前的可执行状况,为后续对恶意软件进行分析处理清除其保护屏障;从而确保计算机的正常运行、维护社会正常的经济活动、以及通讯和国家的安全等特点。
具体实施方式
实施例1:以对名称为sample1.exe的加壳软件的脱壳处理为例:
步骤1.初始化处理:将上述发明内容中一至十组所列原始入口点参数及与之(原始入口点参数)对应的全部断点位置参数逐一录入系统壳特征数据库内,待用:
步骤2.获取加壳恶意软件的原始入口点参数和断点位置参数:将待脱壳的名称为sample1.exe的加壳(恶意)软件输入内存系统后,与壳特征数据库中的各原始入口点参数进行逐一比对,得待脱壳的恶意软件的原始入口点参数与壳特征数据库中第八组、即与:
原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ?? 60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ?? C787 ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 00 00 00 01 DB 7507 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ?? 75 ?9 8B 1E 83 EE FC 11 DB 73 E4 31 C9 83 E8 0372 0D C1 E0 08 8A 06 46 83 F0 FF 74 74 89 C5 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 75 20 41 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01DB 73 EF 75 09 8B 1E 83 EE FC 11 DB 73 E4 83 C1 02 81 FD 00 F3 FF FF 83 D1 01 8D 14 2F83 FD FC 76 0F 8A 02 42 88 07 47 49 75 F7 E9 63 FF FF FF 90 8B 02 83 C2 04 89 07 83 C7 0483 E9 04 77 F1 01 CF E9 01匹配;而与该原始入口点参数对应的断点位置参数为:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9;
将上述原始入口点参数及所对应的全部6个断点位置参数记录(存储)、备用;
步骤3.获取输入表数据:在步骤2获得的6个断点位置数据处,分别采用可返回调用断点位置函数地址的函数作为回调函数,跟踪、调试待脱壳软件的运行,并随时记录回调函数给出的输入表中各个参数、至输入表各参数收集完毕后、获得该恶意软件输入表(参数)为:
01001000 77C746AD ADVAPI32.RegQueryValueExW
01001004 77C7469D ADVAPI32.RegCloseKey
01001008 77C71514 ADVAPI32.RegCreateKeyW
0100100C 77C7448E ADVAPI32.IsTextUnicode
01001010 77C748EF ADVAPI32.RegQueryValueExA
01001014 77C74907 ADVAPI32.RegOpenKeyExA
01001018 77C714D6 ADVAPI32.RegSetValueExW
0100101C 00000000
01001020 75C575E0 COMCTL32.CreateStatusWindowW
01001024 00000000
01001028 77B800D7 GDI32.EndPage
0100102C 77B94C63 GDI32.AbortDoc
01001030 77B950AA GDI32.EndDoc
01001034 77B66EAA GDI32.DeleteDC
01001038 77B95195 GDI32.StartPage
0100103C 77B6B4B5 GDI32.GetTextExtentPoint32W
01001040 77B6CF79 GDI32.CreateDCW
01001044 77B80082 GDI32.SetAbortProc
01001048 77B6B73A GDI32.GetTextFaceW
0100104C 77B6FDE4 GDI32.TextOutW
01001050 77B95BB0 GDI32.StartDocW
01001054 77B6FDA1 GDI32.EnumFontsW
01001058 77B65DDF GDI32.GetStockObject
0100105C 77B67568 GDI32.GetObjectW
01001060 77B66F7F GDI32.GetDeviceCaps
01001064 77B6ABFC GDI32.CreateFontIndirectW
01001068 77B65F14 GDI32.DeleteObject
0100106C 77B67B8F GDI32.GetTextMetricsW
01001070 77B669B1 GDI32.SetBkMode
01001074 77B68484 GDI32.LPtoDP
01001078 77B70BD3 GDI32.SetWindowExtEx
0100107C 77B73A6C GDI32.SetViewportExtEx
01001080 77B6EFBF GDI32.SetMapMode
01001084 77B66640 GDI32.SelectObject
01001088 00000000
0100108C 77E2BB80 kernel32.GetCurrentThreadId
01001090 77E2BA60 kernel32.GetTickCount
01001094 77E2BB9F kernel32.QueryPerformanceCounter
01001098 77E2A90E kernel32.GetLocalTime
0100109C 77E36584 kernel32.GetUserDefaultLCID
010010A0 77E2AFAB kernel32.GetDateFormatW
010010A4 77E2AC29 kernel32.GetTimeFormatW
010010A8 77E29E05 kernel32.GlobalLock
010010AC 77E29D50 kernel32.GlobalUnlock
010010B0 77E31268 kernel32.GetFileInformationByHandle
010010B4 77E20A7F kernel32.CreateFileMappingW
010010B8 77E32FDE kernel32.GetSystemTimeAsFileTime
010010BC 77E22331 kernel32.TerminateProcess
010010C0 77E2CDCF kernel32.GetCurrentProcess
010010C4 77E33D01 kernel32.SetUnhandledExceptionFilter
010010C8 77E3395C kernel32.LoadLibraryA
010010CC 77E2CF41 kernel32.GetModuleHandleA
010010D0 77DE1E10 kernel32.GetStartupInfoA
010010D4 77E29CF9 kernel32.GlobalFree
010010D8 77E36596 kernel32.GetLocaleInfoW
010010DC 77E2CA64 kernel32.LocalFree
010010E0 77E33363 kernel32.LocalAlloc
010010E4 77E2D9E8 kernel32.lstrlenW
010010E8 77E25C02 kernel32.LocalUnlock
010010EC 77E29BEE kernel32.CompareStringW
010010F0 77E25BEA kernel32.LocalLock
010010F4 77E4560D kernel32.FoldStringW
010010F8 77E2CA7C kernel32.CloseHandle
010010FC 77E18BFA kernel32.lstrcpyW
01001100 77E296FB kernel32.ReadFile
01001104 77E2CC56 kernel32.CreateFileW
01001108 77E2A8EB kernel32.lstrcmpiW
0100110C 77E2CAC4 kernel32.GetCurrentProcessId
01001110 77E333D3 kernel32.GetProcAddress
01001114 77E3679E kernel32.GetCommandLineW
01001118 77E44BE7 kernel32.lstrcatW
0100111C 77E30E62 kernel32.FindClose
01001120 77E353B2 kernel32.FindFirstFileW
01001124 77E364FF kernel32.GetFileAttributesW
01001128 77E367B0 kernel32.lstrcmpW
0100112C 77E2B7A0 kernel32.MulDiv
01001130 77E46118 kernel32.lstrcpynW
01001134 77E20032 kernel32.LocalSize
01001138 77E2BF00 kernel32.GetLastError
0100113C 77E31400 kernel32.WriteFile
01001140 77E2BB08 JMP到ntdll.RtlSetLastWin32Error
01001144 77E3450E kernel32.WideCharToMultiByte
01001148 77E27328 kernel32.LocalReAlloc
0100114C 77E254A3 kernel32.FormatMessageW
01001150 77E222EF kernel32.GetUserDefaultUILanguage
01001154 77E22319 kernel32.SetEndOfFile
01001158 77E20F62 kernel32.DeleteFileW
0100115C 77E339AA kernel32.GetACP
01001160 77E2DB13 kernel32.UnmapViewOfFile
01001164 77E3452B kernel32.MultiByteToWideChar
01001168 77E2899B kernel32.MapViewOfFile
0100116C 77E3ED38 kernel32.UnhandledExceptionFilter
01001170 00000000
01001174 73A14E4A SHELL32.DragFinish
01001178 73A1508E SHELL32.DragQueryFileW
0100117C 73921BF1 SHELL32.DragAcceptFiles
01001180 738CA129 SHELL32.ShellAboutW
01001184 00000000
01001188 77D254DD USER32.GetClientRect
0100118C 77D23075 USER32.SetCursor
01001190 77D25421 USER32.ReleaseDC
01001194 77D2544C USER32.GetDC
01001198 77D33B9B USER32.DialogBoxParamW
0100119C 77D2333A USER32.SetActiveWindow
010011A0 77D23800 USER32.GetKeyboardLayout
010011A4 77D2507D USER32.DefWindowProcW
010011A8 77D1B2F4 USER32.DestroyWindow
010011AC 77D42939 USER32.MessageBeep
010011B0 77D1F2A9 USER32.ShowWindow
010011B4 77D2335D USER32.GetForegroundWindow
010011B8 77D24C8E USER32.IsIconic
010011BC 77D469DE USER32.GetWindowPlacement
010011C0 77D2E981 USER32.CharUpperW
010011C4 77D1DFBA USER32.LoadStringW
010011C8 77D1976D USER32.LoadAcceleratorsW
010011CC 77D1FD8B USER32.GetSystemMenu
010011D0 77D20162 USER32.RegisterClassExW
010011D4 77D212EB USER32.LoadImageW
010011D8 77D1ED90 USER32.LoadCursorW
010011DC 77D17F78 USER32.SetWindowPlacement
010011E0 77D1EC7C USER32.CreateWindowExW
010011E4 77D201A9 USER32.GetDesktopWindow
010011E8 77D23A34 USER32.GetFocus
010011EC 77D1F142 USER32.LoadIconW
010011F0 77D2612B USER32.SetWindowTextW
010011F4 77D1B308 USER32.PostQuitMessage
010011F8 77D1DF8D USER32.RegisterWindowMessageW
010011FC 77D1FFA8 USER32.UpdateWindow
01001200 77D404BE USER32.SetScrollPos
01001204 77D1BA8A USER32.CharLowerW
01001208 77D2634A USER32.PeekMessageW
0100120C 77D18D02 USER32.EnableWindow
01001210 77D25894 USER32.DrawTextExW
01001214 77D45630 USER32.CreateDialogParamW
01001218 77D1B8C5 USER32.GetWindowTextW
0100121C 77D267CF USER32.GetSystemMetrics
01001220 77D18D29 USER32.MoveWindow
01001224 77D2566D USER32.InvalidateRect
01001228 77D34867 USER32.WinHelpW
0100122C 77D1B4E8 USER32.GetDlgCtrlID
01001230 77D5B6AA USER32.ChildWindowFromPoint
01001234 77D1A506 USER32.ScreenToClient
01001238 77D1A4B3 USER32.GetCursorPos
0100123C 77D370D8 USER32.SendDlgItemMessageW
01001240 77D25539 USER32.SendMessageW
01001244 77D20BE6 USER32.CharNextW
01001248 77D3EE7C USER32.CheckMenuItem
0100124C 77D4446C USER32.CloseClipboard
01001250 77D444FF USER32.IsClipboardFormatAvailable
01001254 77D4447E USER32.OpenClipboard
01001258 77D467D2 USER32.GetMenuState
0100125C 77D443BC USER32.EnableMenuItem
01001260 77D19C19 USER32.GetSubMenu
01001264 77D46B68 USER32.GetMenu
01001268 77D6EA5F USER32.MessageBoxW
0100126C 77D24449 USER32.SetWindowLongW
01001270 77D261B8 USER32.GetWindowLongW
01001274 77D442BB USER32.GetDlgItem
01001278 77D1ABAD USER32.SetFocus
0100127C 77D3EBD4 USER32.SetDlgItemTextW
01001280 77D3426D USER32.wsprintfW
01001284 77D3ECBC USER32.GetDlgItemTextW
01001288 77D43BA3 USER32.EndDialog
0100128C 77D26029 USER32.GetParent
01001290 77D1B750 USER32.UnhookWinEvent
01001294 77D2CC61 USER32.DispatchMessageW
01001298 77D264C7 USER32.TranslateMessage
0100129C 77D2667E USER32.TranslateAcceleratorW
010012A0 77D24104 USER32.IsDialogMessageW
010012A4 77D2447B USER32.PostMessageW
010012A8 77D2CDE8 USER32.GetMessageW
010012AC 77D224DC USER32.SetWinEventHook
010012B0 00000000
010012B4 6D942458 WINSPOOL.GetPrinterDriverW
010012B8 6D94CAE7 WINSPOOL.ClosePrinter
010012BC 6D9368F0 WINSPOOL.OpenPrinterW
010012C0 00000000
010012C4 6F062694 comdlg32.PageSetupDlgW
010012C8 6F08ACF0 comdlg32.FindTextW
010012CC 6F064B96 comdlg32.PrintDlgExW
010012D0 6F06FE6D comdlg32.ChooseFontW
010012D4 6F05259D comdlg32.GetFileTitleW
010012D8 6F08A2D5 comdlg32.GetOpenFileNameW
010012DC 6F08AD24 comdlg32.ReplaceTextW
010012E0 6F062158 comdlg32.CommDlgExtendedError
010012E4 6F08A36E comdlg32.GetSaveFileNameW
010012E8 00000000
010012EC 6FF7DC75 msvcrt._XcptFilter
010012F0 6FFBB2C0 msvcrt._exit
010012F4 6FFBB2DB msvcrt._c_exit
010012F8 6FF5F708 msvcrt.time
010012FC 6FF67511 msvcrt.localtime
01001300 6FF637D4 msvcrt._cexit
01001304 6FF5AA8C msvcrt.iswetype
01001308 6FF7D770 msvcrt._except_handler3
0100130C 6FF5C7C8 msvcrt._wtol
01001310 6FF5B05E msvcrt.wcsncmp
01001314 6FF795D1 msvcrt._snwprintf
01001318 6FF636AA msvcrt.exit
0100131C 6FFF04D8 ASCII″P$)″
01001320 6FF62BC0 msvcrt._getmainargs
01001324 6FF5C151 msvcrt._initterm
01001328 6FFE77AD msvcrt._setusermatherr
0100132C 6FFF32EC OFFSET msvcrt._adjust_fdiv
01001330 6FF627C3 msvcrt._p_commode
01001334 6FF627CE msvcrt._p_fmode
01001338 6FF62804 msvcrt._set_app_type
0100133C 6FF5E1E1 msvcrt._controlfp
01001340 6FF6D3F3 msvcrt.wcsncpy
01001344 00000000;
此时停止对待脱壳软件的运行调试,同时将所得输入表存储、备用;
步骤4.待脱壳软件的转储:将待脱壳软件sample1.exe从内存中(由步骤2录入)转储到系统硬盘中;
步骤5.脱壳后软件的获取:采用从本实施例步骤2得到的原始入口点参数和步骤3所得输入表中的参数,对经步骤4转储到硬盘上的待脱壳软件sample1.exe进行修复处理,获得脱壳后的软件;修复后即得可直接用于分析的(脱壳后)软件。
实施例2:以名称为sample2.exe的加壳恶意软件的脱壳处理为例;
步骤1.初始化处理与实施例1相同;
步骤2.获取加壳恶意软件的原始入口点参数和断点位置参数:将待脱壳的名称为sample2.exe的加壳(恶意)软件输入内存系统后,与壳特征数据库中的各原始入口点参数进行逐一比对,得待脱壳的恶意软件的原始入口点参数与壳特征数据库中第四组、即与:
原始入口点参数:87 25 ?? ?? ?? ?? 61 94 55 A4 B6 80 FF 13 73 F9 33 C9 FF 13 73 16 33 C0FF 13 73 1F B6 80 41 B0 10 FF 13 12 C0 73 FA 75 3A AA EB E0 FF 53 08 02 F6 83 D9 01 75 0EFF 53 04 EB 24 AC D1 E8 74 2D 13 C9 EB 18 91 48 C1 E0 08 AC FF 53 04 3B 43 F8 73 0A 80FC 05 73 06 83 F8 7F 77 02 41 41 95 8B C5 B6 ?? 56 8B F7 2B F0 F3 A4 5E EB 9F 5E AD 97 AD50 FF 53 10 95 8B 07 40 78 F3 75 03 FF 63 0C 50 55 FF 53 14 AB EB EE 33 C9 41 FF 13 13 C9FF 13 72 F8 C3 02 D2 75 05 8A 16 46 12 D2 C3匹配;而与该原始入口点参数对应的断点位置参数为:
断点1:AD50FF53??95
断点2:5055FF53??AB
断点3:75??FF630C,
将上述原始入口点参数及所对应的全部6个断点位置参数记录(存储)、备用;
步骤3.获取输入表数据:在步骤2获得的3个断点位置数据处,仍采用可返回调用断点位置函数地址的函数作为回调函数,跟踪、调试待脱壳软件的运行,并随时记录回调函数给出的输入表中各个参数;至输入表各参数收集完毕后、得该恶意软件输入表如下:
01001000 77C746AD advapi32.RegQueryValueExW
01001004 77C7469D advapi32.RegCloseKey
01001008 77C71514 advapi32.RegCreateKeyW
0100100C 77C7448E advapi32.IsTextUnicode
01001010 77C748EF advapi32.RegQueryValueExA
01001014 77C74907 advapi32.RegOpenKeyExA
01001018 77C714D6 advapi32.RegSetValueExW
0100101C 7FFFFFFF
01001020 75C575E0 comctl32.CreateStatusWindowW
01001024 7FFFFFFF
01001028 77B800D7 gdi32.EndPage
0100102C 77B94C63 gdi32.AbortDoc
01001030 77B950AA gdi32.EndDoc
01001034 77B66EAA gdi32.DeleteDC
01001038 77B95195 gdi32.StartPage
0100103C 77B6B4B5 gdi32.GetTextExtentPoint32W
01001040 77B6CF79 gdi32.CreateDCW
01001044 77B80082 gdi32.SetAbortProe
01001048 77B6B73A gdi32.GetTextFaceW
0100104C 77B6FDE4 gdi32.TextOutW
01001050 77B95BB0 gdi32.StartDocW
01001054 77B6FDA1 gdi32.EnumFontsW
01001058 77B65DDF gdi32.GetStockObject
0100105C 77B67568 gdi32.GetObjectW
01001060 77B66F7F gdi32.GetDeviceCaps
01001064 77B6ABFC gdi32.CreateFontIndirectW
01001068 77B65F14 gdi32.DeleteObject
0100106C 77B67B8F gdi32.GetTextMetricsW
01001070 77B669B1 gdi32.SetBkMode
01001074 77B68484 gdi32.LPtoDP
01001078 77B70BD3 gdi32.SetWindowExtEx
0100107C 77B73A6C gdi32.SetViewportExtEx
01001080 77B6EFBF gdi32.SetMapMode
01001084 77B66640 gdi32.SelectObject
01001088 7FFFFFFF
0100108C 77E2BB80 kernel32.GetCurrentThreadId
01001090 77E2BA60 kernel32.GetTickCount
01001094 77E2BB9F kernel32.QueryPerformanceCounter
01001098 77E2A90E kernel32.GetLocalTime
0100109C 77E36584 kernel32.GetUserDefaultLCID
010010A0 77E2AFAB kernel32.GetDateFormatW
010010A4 77E2AC29 kernel32.GetTimeFormatW
010010A8 77E29E05 kernel32.GlobalLock
010010AC 77E29D50 kernel32.GlobalUnlock
010010B0 77E31268 kernel32.GetFileInformationByHandle
010010B4 77E20A7F kernel32.CreateFileMappingW
010010B8 77E32FDE kernel32.GetSystemTimeAsFileTime
010010BC 77E22331 kernel32.TerminateProcess
010010C0 77E2CDCF kernel32.GetCurrentProcess
010010C4 77E33D01 kernel32.SetUnhandledExceptionFilter
010010C8 77E3395C kernel32.LoadLibraryA
010010CC 77E2CF41 kernel32.GetModuleHandleA
010010D0 77DE1E10 kernel32.GetStartupInfoA
010010D4 77E29CF9 kernel32.GlobalFree
010010D8 77E36596 kernel32.GetLocaleInfoW
010010DC 77E2CA64 kernel32.LocalFree
010010E0 77E33363 kernel32.LocalAlloc
010010E4 77E2D9E8 kernel32.lstrlenW
010010E8 77E25C02 kernel32.LocalUnlock
010010EC 77E29BEE kernel32.CompareStringW
010010F0 77E25BEA kernel32.LocalLock
010010F4 77E4560D kernel32.FoldStringW
010010F8 77E2CA7C kernel32.CloseHandle
010010FC 77E18BFA kernel32.lstrcpyW
01001100 77E296FB kernel32.ReadFile
01001104 77E2CC56 kernel32.CreateFileW
01001108 77E2A8EB kernel32.lstrcmpiW
0100110C 77E2CAC4 kernel32.GetCurrentProcessId
01001110 77E333D3 kernel32.GetProcAddress
01001114 77E3679E kernel32.GetCommandLineW
01001118 77E44BE7 kernel32.lstrcatW
0100111C 77E30E62 kernel32.FindClose
01001120 77E353B2 kernel32.FindFirstFileW
01001124 77E364FF kernel32.GetFileAttributesW
01001128 77E367B0 kernel32.lstrcmpW
0100112C 77E2B7A0 kernel32.MulDiv
01001130 77E46118 kernel32.lstrcpynW
01001134 77E20032 kernel32.LocalSize
01001138 77E2BF00 kernel32.GetLastError
0100113C 77E31400 kernel32.WriteFile
01001140 77E2BB08 JMP到ntdll.RtlSetLastWin32Error
01001144 77E3450E kernel32.WideCharToMultiByte
01001148 77E27328 kernel32.LocalReAlloc
0100114C 77E254A3 kernel32.FormatMessageW
01001150 77E222EF kernel32.GetUserDefaultUILanguage
01001154 77E22319 kernel32.SetEndOfFile
01001158 77E20F62 kernel32.DeleteFileW
0100115C 77E339AA kernel32.GetACP
01001160 77E2DB13 kernel32.UnmapViewOfFile
01001164 77E3452B kernel32.MultiByteToWideChar
01001168 77E2899B kernel32.MapViewOfFile
0100116C 77E3ED38 kernel32.UnhandledExceptionFilter
01001170 7FFFFFFF
01001174 73A14E4A shell32.DragFinish
01001178 73A1508E shell32.DragQueryFileW
0100117C 73921BF1 shell32.DragAcceptFiles
01001180 738CA129 shell32.ShellAboutW
01001184 7FFFFFFF
01001188 77D254DD user32.GetClientRect
0100118C 77D23075 user32.SetCursor
01001190 77D25421 user32.ReleaseDC
01001194 77D2544C user32.GetDC
01001198 77D33B9B user32.DialogBoxParamW
0100119C 77D2333A user32.SetActiveWindow
010011A0 77D23800 user32.GetKeyboardLayout
010011A4 77D2507D user32.DefWindowProcW
010011A8 77D1B2F4 user32.DestroyWindow
010011AC 77D42939 user32.MessageBeep
010011B0 77D1F2A9 user32.ShowWindow
010011B4 77D2335D user32.GetForegroundWindow
010011B8 77D24C8E user32.IsIconic
010011BC 77D469DE user32.GetWindowPlacement
010011C0 77D2E981 user32.CharUpperW
010011C4 77D1DFBA user32.LoadStringW
010011C8 77D1976D user32.LoadAcceleratorsW
010011CC 77D1FD8B user32.GetSystemMenu
010011D0 77D20162 user32.RegisterClassExW
010011D4 77D212EB user32.LoadImageW
010011D8 77D1ED90 user32.LoadCursorW
010011DC 77D17F78 user32.SetWindowPlacement
010011E0 77D1EC7C user32.CreateWindowExW
010011E4 77D201A9 user32.GetDesktopWindow
010011E8 77D23A34 user32.GetFocus
010011EC 77D1F142 user32.LoadIconW
010011F0 77D2612B user32.SetWindowTextW
010011F4 77D1B308 user32.PostQuitMessage
010011F8 77D1DF8D user32.RegisterWindowMessageW
010011FC 77D1FFA8 user32.UpdateWindow
01001200 77D404BE user32.SetScrollPos
01001204 77D1BA8A user32.CharLowerW
01001208 77D2634A user32.PeekMessageW
0100120C 77D18D02 user32.EnableWindow
01001210 77D25894 user32.DrawTextExW
01001214 77D45630 user32.CreateDialogParamW
01001218 77D1B8C5 user32.GetWindowTextW
0100121C 77D267CF user32.GetSystemMetrics
01001220 77D18D29 user32.MoveWindow
01001224 77D2566D user32.InvalidateRect
01001228 77D34867 user32.WinHelpW
0100122C 77D1B4E8 user32.GetDlgCtrlID
01001230 77D5B6AA user32.ChildWindowFromPoint
01001234 77D1A506 user32.ScreenToClient
01001238 77D1A4B3 user32.GetCursorPos
0100123C 77D370D8 user32.SendDlgItemMessageW
01001240 77D25539 user32.SendMessageW
01001244 77D20BE6 user32.CharNextW
01001248 77D3EE7C user32.CheckMenuItem
0100124C 77D4446C user32.CloseClipboard
01001250 77D444FF user32.IsClipboardFormatAvailable
01001254 77D4447E user32.OpenClipboard
01001258 77D467D2 user32.GetMenuState
0100125C 77D443BC user32.EnableMenuItem
01001260 77D19C19 user32.GetSubMenu
01001264 77D46B68 user32.GetMenu
01001268 77D6EA5F user32.MessageBoxW
0100126C 77D24449 user32.SetWindowLongW
01001270 77D261B8 user32.GetWindowLongW
01001274 77D442BB user32.GetDlgItem
01001278 77D1ABAD user32.SetFocus
0100127C 77D3EBD4 user32.SetDlgItemTextW
01001280 77D3426D user32.wsprintfW
01001284 77D3ECBC user32.GetDlgItemTextW
01001288 77D43BA3 user32.EndDialog
0100128C 77D26029 user32.GetParent
01001290 77D1B750 user32.UnhookWinEvent
01001294 77D2CC61 user32.DispatchMessageW
01001298 77D264C7 user32.TranslateMessage
0100129C 77D2667E user32.TranslateAcceleratorW
010012A0 77D24104 user32.IsDialogMessageW
010012A4 77D2447B user32.PostMessageW
010012A8 77D2CDE8 user32.GetMessageW
010012AC 77D224DC user32.SetWinEventHook
010012B0 FFFFFFFF
010012B4 6D942458 winspool.GetPrinterDriverW
010012B8 6D94CAE7 winspool.ClosePrinter
010012BC 6D9368F0 winspool.OpenPrinterW
010012C0 7FFFFFFF
010012C4 6F062694 comdlg32.PageSetupDlgW
010012C8 6F08ACF0 comdlg32.FindTextW
010012CC 6F064B96 comdlg32.PrintDlgExW
010012D0 6F06FE6D comdlg32.ChooseFontW
010012D4 6F05259D comdlg32.GetFileTitleW
010012D8 6F08A2D5 comdlg32.GetOpenFileNameW
010012DC 6F08AD24 comdlg32.ReplaceTextW
010012E0 6F062158 comdlg32.CommDlgExtendedError
010012E4 6F08A36E comdlg32.GetSaveFileNameW
010012E8 7FFFFFFF
010012EC 6FF7DC75 msvcrt._XcptFilter
010012F0 6FFBB2C0 msvcrt._exit
010012F4 6FFBB2DB msvcrt._c_exit
010012F8 6FF5F708 msvcrt.time
010012FC 6FF67511 msvcrt.localtime
01001300 6FF637D4 msvcrt._cexit
01001304 6FF5AA8C msvcrt.iswetype
01001308 6FF7D770 msvcrt._except_handler3
0100130C 6FF5C7C8 msvcrt._wtol
01001310 6FF5B05E msvcrt.wcsncmp
01001314 6FF795D1 msvcrt._snwprintf
01001318 6FF636AA msvcrt.exit
0100131C 6FFF04D8 OFFSET msvcrt._acmdln
01001320 6FF62BC0 msvcrt._getmainargs
01001324 6FF5C151 msvcrt._initterm
01001328 6FFE77AD msvcrt._setusermatherr
0100132C 6FFF32EC OFFSET msvcrt._adjust_fdiv
01001330 6FF627C3 msvcrt._p_commode
01001334 6FF627CE msvcrt._p_fmode
01001338 6FF62804 msvcrt._set_app_type
0100133C 6FF5E1E1 msvcrt._controlfp
01001340 6FF6D3F3 msvcrt.wcsncpy
01001344 7FFFFFFF,
然后停止对待脱壳软件的运行调试,同时将所得输入表存储、备用;
步骤4.待脱壳软件的转储:将待脱壳软件sample2.exe从内存中(由步骤2录入)转储到系统硬盘中;
步骤5.脱壳后软件的获取:采用从本实施例步骤2得到的原始入口点参数和步骤3所得输入表中的参数,对经步骤4转储到硬盘上的待脱壳软件sample2.exe进行修复处理,获得脱壳后的软件;修复后即得可直接用于分析的(脱壳后)软件。
Claims (3)
1.一种基于综合处理的软件壳自动脱壳方法,包括:
步骤1.初始化处理:将各组带保护壳软件的壳特征参数中的原始入口点参数及与该原始入口点参数对应的全部断点位置参数、逐一按类录入壳特征数据库内、待用;
步骤2.获取加壳恶意软件的原始入口点参数和断点位置参数:将待脱壳的恶意软件输入内存系统后,与壳特征库中的各原始入口点参数进行逐一比对处理,以获得待脱壳的恶意软件的原始入口点参数,并记录该原始入口点参数及所对应的全部断点位置参数,分别存储、备用;
步骤3.获取输入表数据:在步骤2获得的各断点位置数据处,采用断点回调函数跟踪待脱壳软件的运行、调试,并随时记录回调函数给出的输入表各参数数据;当输入表参数收集完毕后、停止对待脱壳软件的运行、调试,同时存储备用;
步骤4.待脱壳软件的转储:将待脱壳软件从内存中转储到硬盘上;
步骤5.脱壳后软件的获取:使用从步骤2所得、备用的原始入口点参数和步骤3获取并存储备用的输入表各参数,对经步骤4转储到硬盘上的待脱壳的软件进行修复处理,修复后即得可直接用于分析的软件。
2.按权利要求1所述基于综合处理的软件壳自动脱壳方法,其特征在于所述各组原始入口点参数及与该原始入口点参数对应的全部断点位置参数包括:
一.原始入口点参数为:60 BE ?? ?? ?? ?? BF ?? ?? ?? ?? FC B2 80 33 DB A4 B3 02 E86D ?? ?? ?? 73 F6 33 C9 E8 64 ?? ?? ?? 73 1C 33 C0 E8 5B ?? ?? ?? 73 23 B3 02 41 B0 10 E84F ?? ?? ?? 12 C0 73 F7 75 3F AA EB D4 E8 4D ?? ?? ?? 2B CB 75 10 E8 42 ?? ?? ??EB 28 ACD1 E8 74 4D 13 C9 EB 1C 91 48 C1 E0 08 AC E8 2C ?? ?? ?? 3D ?? 7D ?? ?? 73 0A 80 FC 05 7306 83 F8 7F 77 02 41 41 95 8B C5 B3 01 56 8B F7 2B F0 F3 A4 5E EB 8E 02 D2 75 05 8A 16 4612 D2 C3 33 C9 41 E8 EE FF FF FF 13 C9 E8 E7 FF FF FF 72 F2 C3 BE ?? 10 40 ?? B9 04 ?? ?? ??8B F9 81 FE ?? ?? ?? ?? 7F 10 AC 47 04 18 2C 02 73 F0 29 3E 03 F1 03 F9 EB E8 BA ?? ?? 40 ??8D B2 ?? ?? ?? ?? 8B 46 0C 85 C0 74 51 03 C2 8B 7E 10 8B 1E 85 DB 75 02 8B DF 03 DA 03 FA52 57 50 FF 15 ?? ?? ?? ?? 5F 5A 85 C0 74 2F 8B C8 8B 03 85 C0 74 22 0F BA F0 1F 72 04 8D 4410 02 51 52 57 50 51 FF 15 ?? ?? ?? ?? 5F 5A 59 85 C0 74 0B AB 83 C3 04 EB D8 83 C6 14 EBAA 61 C3 61 E9
及对应的断点位置参数:
断点1:525750FF15????????5F5A,
断点2:5152575051FF15????????5F5A59,
断点3:61C361E9;
或
二.原始入口点参数:60 68 ?? ?? ?? ?? 68 ?? 10 40 ?? 68 ?? ?? ?? ?? E8 81 07 ?? ??BE ?? 10 40 ?? B9 04 ?? ?? ?? 8B F9 81 FE ?? ?? ?? ?? 7F 10 AC 47 04 18 2C 02 73 F029 3E 03 F1 03 F9 EB E8 BA ?? ?? 40 ?? 8D B2 ?? ?? ?? ?? 8B 46 0C 85 C0 74 51 03 C28B 7E 10 8B 1E 85 DB 75 02 8B DF 03 DA 03 FA 52 57 50 FF 15 ?? ?? ?? ??5F 5A 85 C074 2F 8B C8 8B 03 85 C0 74 22 0F BA F0 1F 72 04 8D 44 10 02 51 52 57 50 51 FF 15 ?? ?? ?? ??5F 5A 59 85 C0 74 0B AB 83 C3 04 EB D8 83 C6 14 EB AA 61 C3 61 E9 ?? ?? ?? ?? 8B 0803 48 04 B8 ?? 03 ?? ?? D3 E0 05 36 07 ?? ?? C3 8B 10 3B 50 04 75 0C C7 40 10 01 ?? ?? ??B2 FF 8B C2 C3 8B 10 8A 12 FF ?? 8B C2 C3 53 56 8B D8 89 13 03 CA 89 4B 04 33 C0 8943 10 33 C0 89 43 0C C7 43 08 FF FF FF FF BE 05 ?? ?? ?? 8B C3 E8 BC FF FF FF 25 FF ?? ?? ??8B 53 0C C1 E2 08 0B C2 89 43 0C 4E 75 E6 5E 5B C3 53 56 57 55 51 89 04 24 8B 1C 248B 5B 08 8B 34 24 8B 76 0C 33 ED 8B FA 85 FF 7E 2F D1 EB 03 ED 3B DE 77 05 2B F3 83CD 01 81 FB ?? ?? ?? 01 73 17 C1 E3 08 8B 04 24 E8 6A FF FF FF 25 FF ?? ?? ?? C1 E608 0B C6 8B F0 4F 75 D1 8B 04 24 89 58 08 8B 04 24 89 70 0C 8B C5 5A 5D 5F 5E 5B C353 56 57 55 8B F8 8B 5F 08 8B 77 0C 8B CB C1 E9 0B 8B 020F AF C8 3B CE 76 12 8B D9B9 ?? 08 ?? ?? 2B C8 C1 E9 05 01 0A 33 ED EB 0E 2B F1 2B D9 C1 E8 05 29 02 BD 01 ?? ?? ??81 FB ?? ?? ?? 01 73 16 8B C7 E8 FE FE FF FF 25 FF ?? ?? ?? C1 E6 08 0B C6 8B F0 C1E3 08 89 5F 08 89 77 0C 8B C5 5D 5F 5E 5B C3 53 56 57 55 51 89 0C 24 8B EA 8B F8 BB01 ?? ?? ?? 8B 34 24 85 F6 7E 14 8D 54 9D ?? 8B C7 E8 78 FF FF FF 03 DB 0B C3 8B D84E 75 EC 8B 0C 24 B8 01 ?? ?? ?? D3 E0 50 8B C3 5A 2B C2 5A 5D 5F 5E 5B C3 53 56 5755 81 C4 F4 FF FF FF 89 4C 24 08 89 54 24 04 89 04 24 33 ED BB 01 ?? ?? ?? 8B 74 2408 4E 85 F6 7C 20 46 33 FF 8B 44 24 04 8D 14 98 8B 04 24 E8 22 FF FF FF 03 DB 0B D88B CF D3 E0 0B E8 47 4E 75 E3 8B C5 83 C4 0C 5D 5F 5E 5B C3 53 56 57 8B FA 8B F0 BB01 ?? ?? ?? 8D 14 9F 8B C6 E8 F4 FE FF FF 03 DB 0B C3 8B D8 81 FB ?? 01 ?? ?? 7C E88B C3 5F 5E 5B C3 53 56 57 55 51 88 0C 24 8B FA 8B F0 BB 01 ?? ?? ?? 0F B6 2C 24 C1ED 07 83 E5 01 D0 24 24 8B C5 C1 E0 08 05 ?? 01 ?? ?? 03 C3 8D 14 87 8B C6 E8 AC FEFF FF 03 DB 0B D8 3B C5 74 22 81 FB ?? 01 ?? ?? 7D 22 8D 14 9F 8B C6 E8 92 FE FF FF03 DB 0B C3 8B D8 81 FB ?? 01 ?? ?? 7C E8 EB 08 81 FB ?? 01 ?? ?? 7C AB 8B C3 5A 5D5F 5E 5B C3 53 56 57 55 8B E9 8B F2 8B D8 8B FE 8B D7 8B C3 E8 5D FE FF FF 85 C0 7517 C1 E5 03 83 C5 02 8D 14 AF 8B C3 B9 03 ?? ?? ?? E8 A9 FE FF FF EB 40 8D 57 04 8BC3 E8 38 FE FF FF 85 C0 75 1D C1 E5 03 81 C5 82 ?? ?? ?? 8D 14 AF 8B C3 B9 03 ?? ?? ??E8 81 FE FF FF 83 C0 08 EB 15 8D 97 08 04 ?? ?? 8B C3 B9 08 ?? ?? ?? E8 6A FE FF FF83 C0 10 5D 5F 5E 5B C3 8A 12 80 FA E1 72 03 33 C0 C3 33 C9 89 48 08 80 FA 2D 72 0B80 EA 2D FF 40 08 80 FA 2D 73 F5 33 C9 89 48 04 80 FA 09 72 0B 80 EA 09 FF 40 04 80FA 09 73 F5 81 E2 FF ?? ?? ?? 89 10 B0 01 C3
及对应的断点位置参数:
断点1:525750FF15????????5F5A
断点2:5152575051FF15????????5F5A59
断点3:61C361E9;
或
三.原始入口点参数:83 7C 24 08 01 0F 85 28 01 ?? ?? 60 68 ?? ?? ?? ?? 68 ?? ?? ?? ??68 ?? ?? ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? B9 ?? ?? ?? ??8B F9 81 FE ?? ?? ?? ??7F 10 AC 47 04 ?? 2C ?? 73 F0 29 3E 03 F1 03 F9 EB E8 BB ?? ?? ?? ?? BA ?? ?? ?? ??BE ?? ?? ?? ?? 85 F6 74 78 B9 ?? ?? ?? ?? E3 71 8B 6C 33 ?? 8B 4C 33 04 E3 67 81 E908 ?? ?? ?? 81 C6 08 ?? ?? ?? 0F B7 04 33 8B F8 81 E7 ?? ?? ?? ?? 03 FD C1 E8 ?? 4874 0B 48 74 13 48 74 16 48 74 18 EB 32 52 C1 EA ?? 66 01 14 3B 5A EB 27 66 01 14 3BEB 21 01 14 3B EB 1C 83 C6 02 83 E9 02 8B 44 3B FE 66 8B 04 33 8D 84 15 ?? ?? ?? ??C1 E8 ?? 66 89 14 3B 83 C6 02 83 E9 02 75 A7 EB 8F BA ?? ?? ?? ?? 8D B2 ?? ?? ?? ??8B 46 0C 85 C0 74 51 03 C2 8B 7E ?? 8B 1E 85 DB 75 02 8B DF 03 DA 03 FA 52 57 50 FF15 ?? ?? ?? ?? 5F 5A 85 C0 74 2F 8B C8 8B 03 85 C0 74 22 0F BA F0 ?? 72 04 8D 44 10 ??51 52 57 50 51 FF 15 ?? ?? ?? ?? 5F 5A 59 85 C0 74 0B AB 83 C3 04 EB D8 83 C6 14 EBAA 61 C3 61 E9 ?? ?? ?? ?? 8B 08 03 48 04 B8 ?? 03 ?? ?? D3 E0 05 36 07 ?? ??C3 8B10 3B 50 04 75 0C C7 40 10 01 ?? ?? ?? B2 FF 8B C2 C3 8B 10 8A 12 FF ?? 8B C2 C3 5356 8B D8 89 13 03 CA 89 4B 04 33 C0 89 43 10 33 C0 89 43 0C C7 43 08 FF FF FF FF BE05 ?? ?? ?? 8B C3 E8 BC FF FF FF 25 FF ?? ?? ??8B 53 0C C1 E2 08 0B C2 89 43 0C 4E75 E6 5E 5B C3
及对应的断点位置参数:
断点1:525750FF15????????5F5A
断点2:5152575051FF15????????5F5A59
断点3:61C361E9;
或
四.原始入口点参数:87 25 ?? ?? ?? ?? 61 94 55 A4 B6 80 FF 13 73 F9 33 C9 FF 13 73 16 33C0 FF 13 73 1F B6 80 41 B0 10 FF 13 12 C0 73 FA 75 3A AA EB E0 FF 53 08 02 F6 83 D9 01 750E FF 53 04 EB 24 AC D1 E8 74 2D 13 C9 EB 18 91 48 C1 E0 08 AC FF 53 04 3B 43 F8 73 0A80 FC 05 73 06 83 F8 7F 77 02 41 41 95 8B C5 B6 ?? 56 8B F7 2B F0 F3 A4 5E EB 9F 5E AD 97AD 50 FF 53 10 95 8B 07 40 78 F3 75 03 FF 63 0C 50 55 FF 53 14 AB EB EE 33 C9 41 FF 13 13C9 FF 13 72 F8 C3 02 D2 75 05 8A 16 46 12 D2 C3
及对应的断点位置参数:
断点1:AD50FF53??95
断点2:5055FF53??AB
断点3:75??FF630C;
或
五.原始入口点参数:4D 5A BE ?? ?? ?? ?? 8B DE AD AD 50 AD 97 B2 80 A4 B6 80 FF 1373 F9 33 C9 FF 13 73 16 33 C0 FF 13 73 21 B6 80 41 B0 10 FF 13 12 C0 73 FA 75 3E AA EB E0E8 76 6E ?? ?? 02 F6 83 D9 01 75 0E FF 53 FC EB 26 AC D1 E8 74 2F 13 C9 EB 1A 91 48 C1 E008 AC FF 53 FC 3D ?? ?? ?? ?? 73 0A 80 FC 05 73 06 83 F8 7F 77 02 41 41 95 8B C5 B6 ?? 56 8BF7 2B F0 F3 A4 5E EB 9B AD 85 C0 75 90 AD 96 AD 97 56 AC 3C ?? 75 FB FF 53 F0 95 56 AD0F C8 40 59 74 EC 79 07 AC 3C ?? 75 FB 91 40 50 55 FF 53 F4 AB 85 C0 75 E5 C3
及对应的断点位置参数:
断点1:56AC3C0075FBFF53F0
断点2:405055FF53F4AB85C0
断点3:AB85C075E5C3
断点4:5E59E2B1ADFFE09148;
或
六.原始入口点参数:4D 5A BE ?? ?? ?? ?? AC 91 AD 95 AD 92 AD 51 56 87 F2 97 FC B280 33 DB A4 B3 02 FF 55 04 73 F8 33 C9 FF 55 04 73 18 33 C0 FF 55 04 73 1F B3 02 41 B0 10FF 55 04 12 C0 73 F9 75 4F AA EB DC E8 5D ?? ?? ?? 2B CB 75 17 FF 55 08 EB 35 AC D1 E874 04 13 C9 EB 23 87 F2 5E 59 E2 B1 AD FF E0 91 48 C1 E0 08 AC FF 55 08 3D ?? ?? ?? ??730A 80 FC 05 73 06 83 F8 7F 77 02 41 41 55 87 FD AB 87 FD 5D 55 87 F5 AD 87 F5 5D B3 01 568B F7 2B F0 F3 A4 5E EB 86 02 D2 75 05 8A 16 46 12 D2 C3 33 C9 41 FF 55 04 13 C9 FF 55 0472 F6 C3
及对应的断点位置参数:
断点1:56AC3C0075FBFF53F0
断点2:405055FF53F4AB85C0
断点3:AB85C075E5C3
断点4:5E59E2B1ADFFE09148;
或
七.原始入口点参数(数据):E9 F5 00 00 00 0D 0A C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 0D 0A 20 50 65 58 20 28 63 29 20 62 79 20 62 61 72 74 5E43 72 61 63 6B 50 6C 20 62 65 74 61 20 72 65 6C 65 61 73 65 20 20 20 20 20 20 20 20 20 20 2020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0D0A C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 C4 0D 0A 60 E801 00 00 00 E8 83 C4 04 E8 01 00 00 00
及对应的断点位置参数:
断点1:5A5E0E56CB
断点2:50E801000000??83C404A1????????E8????????FFD085C0
断点3:83C40481E3FFFFFF7F53FFB5????????E801000000??83C404A1
断点4:6A??59F3A4C3
断点5:68????????EB01C7584050C3
断点6:68????????EB01C7584050C3;
或
八.原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ??60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ??C7 87 ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 00 00 00 01 DB75 07 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ?? 75 ?9 8B 1E 83 EE FC 11 DB 73 E4 31 C9 83 E803 72 0D C1 E0 08 8A 06 46 83 F0 FF 74 74 89 C5 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 75 20 41 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01DB 73 EF 75 09 8B 1E 83 EE FC 11 DB 73 E4 83 C1 02 81 FD 00 F3 FF FF 83 D1 01 8D 14 2F83 FD FC 76 0F 8A 02 42 88 07 47 49 75 F7 E9 63 FF FF FF 90 8B 02 83 C2 04 89 07 83 C7 0483 E9 04 77 F1 01 CF E9 01
及对应的断点位置参数:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9;
或
九.原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ??60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ??C7 87 ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 00 00 00 01 DB75 07 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ?? 75 ?9 8B 1E 83 EE FC 11 DB 72 10 48 01 DB 7507 8B 1E 83 EE FC 11 DB 11 C0 EB D4 31 C9 83 E8 03 72 11 C1 E0 08 8A 06 46 83 F0 FF 74 78D1 F8 89 C5 EB 0B 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01 DB 75 07 8B 1E 83 EE FC 11DB 11 C9 75 20 41 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C9 01 DB 73 EF 75 09 8B 1E 83 EEFC 11 DB 73 E4 83 C1 02 81 FD 00 FB FF FF 83 D1 01 8D 14 2F 83 FD FC 76 0F 8A 02 42 88 0747 49 75 F7 E9 01
及对应的断点位置参数:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9;
或
十.原始入口点参数:80 7C 24 08 01 0F 85 ?? ?? ?? ?? 60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ??C7 87 ?? ?? ?? ?? ?? ?? ?? ?? 57 83 CD FF EB 00-7F EB 8B 1E 83 EE FC 11 DB 72 ED B8 01 0000 00 01 DB 75 07 8B 1E 83 EE FC 11 DB 11 C0 01 DB 73 ??75 ?9 8B 1E 83 EE FC 11 DB
及对应的断点位置参数:
断点1:5083C708FF96
断点2:5047??5748F2AE
断点3:5748F2AE55FF96
断点4:89F95748F2AE52FF
断点5:83EC80E9
断点6:61E9。
3.按权利要求1所述基于综合处理的软件壳自动脱壳方法,其特征在于所述采用断点回调函数为采用拦截窗口函数、拦截对话框函数、拦截注册表函数、拦截驱动函数以及可返回调用断点位置函数地址的函数中的一种或几种函数作为断点回调函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101325878A CN102184363B (zh) | 2011-05-21 | 2011-05-21 | 基于综合处理的软件壳自动脱壳方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101325878A CN102184363B (zh) | 2011-05-21 | 2011-05-21 | 基于综合处理的软件壳自动脱壳方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184363A true CN102184363A (zh) | 2011-09-14 |
CN102184363B CN102184363B (zh) | 2013-09-25 |
Family
ID=44570538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101325878A Expired - Fee Related CN102184363B (zh) | 2011-05-21 | 2011-05-21 | 基于综合处理的软件壳自动脱壳方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184363B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019828A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于加壳程序的辅助脱壳方法及装置 |
CN103019739A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 重定位表的修复方法、程序脱壳方法及相关装置 |
CN103177222A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种文件加壳、脱壳的处理方法及其设备 |
CN105487981A (zh) * | 2015-12-09 | 2016-04-13 | 珠海金山网络游戏科技有限公司 | 一种加壳软件转存文件的转换方法、装置和系统 |
CN106022130A (zh) * | 2016-05-20 | 2016-10-12 | 中国科学院信息工程研究所 | 加固应用程序的脱壳方法及装置 |
CN107784204A (zh) * | 2016-08-31 | 2018-03-09 | 百度在线网络技术(北京)有限公司 | 应用脱壳方法和装置 |
CN108073814A (zh) * | 2017-12-29 | 2018-05-25 | 哈尔滨安天科技股份有限公司 | 基于静态结构化脱壳参数的脱壳方法、系统及存储介质 |
CN108090353A (zh) * | 2017-11-03 | 2018-05-29 | 哈尔滨安天科技股份有限公司 | 一种基于知识驱动的加壳代码回归检测方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033440A1 (en) * | 1999-10-29 | 2001-05-10 | Vast Systems Technology Corporation | Hardware and software co-simulation including executing an analyzed user program |
CN101154259A (zh) * | 2007-08-27 | 2008-04-02 | 电子科技大学 | 通用自动化脱壳引擎与方法 |
CN101393521A (zh) * | 2008-11-13 | 2009-03-25 | 上海交通大学 | Windows应用程序内部固化数据的提取系统 |
CN101414328A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种用于对文件进行脱壳的装置和方法 |
CN101964040A (zh) * | 2010-09-10 | 2011-02-02 | 西安理工大学 | 一种基于PE Loader的软件加壳保护方法 |
CN102004884A (zh) * | 2009-08-28 | 2011-04-06 | 华为技术有限公司 | 一种获取可执行文件输入表的方法及装置 |
-
2011
- 2011-05-21 CN CN2011101325878A patent/CN102184363B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033440A1 (en) * | 1999-10-29 | 2001-05-10 | Vast Systems Technology Corporation | Hardware and software co-simulation including executing an analyzed user program |
CN101154259A (zh) * | 2007-08-27 | 2008-04-02 | 电子科技大学 | 通用自动化脱壳引擎与方法 |
CN101414328A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种用于对文件进行脱壳的装置和方法 |
CN101393521A (zh) * | 2008-11-13 | 2009-03-25 | 上海交通大学 | Windows应用程序内部固化数据的提取系统 |
CN102004884A (zh) * | 2009-08-28 | 2011-04-06 | 华为技术有限公司 | 一种获取可执行文件输入表的方法及装置 |
CN101964040A (zh) * | 2010-09-10 | 2011-02-02 | 西安理工大学 | 一种基于PE Loader的软件加壳保护方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177222A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种文件加壳、脱壳的处理方法及其设备 |
WO2013091452A1 (zh) * | 2011-12-23 | 2013-06-27 | 腾讯科技(深圳)有限公司 | 一种文件加壳、脱壳的处理方法及其设备 |
US9100170B2 (en) | 2011-12-23 | 2015-08-04 | Tencent Technology (Shenzhen) Company Limited | File packing and unpacking method, and device thereof |
CN103177222B (zh) * | 2011-12-23 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 一种文件加壳、脱壳的处理方法及其设备 |
CN103019828A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于加壳程序的辅助脱壳方法及装置 |
CN103019739A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 重定位表的修复方法、程序脱壳方法及相关装置 |
CN103019828B (zh) * | 2012-12-28 | 2015-06-17 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于加壳程序的辅助脱壳方法及装置 |
CN103019739B (zh) * | 2012-12-28 | 2015-07-29 | 北京神州绿盟信息安全科技股份有限公司 | 重定位表的修复方法、程序脱壳方法及相关装置 |
CN105487981A (zh) * | 2015-12-09 | 2016-04-13 | 珠海金山网络游戏科技有限公司 | 一种加壳软件转存文件的转换方法、装置和系统 |
CN105487981B (zh) * | 2015-12-09 | 2018-02-13 | 珠海金山网络游戏科技有限公司 | 一种加壳软件转存文件的转换方法、装置和系统 |
CN106022130A (zh) * | 2016-05-20 | 2016-10-12 | 中国科学院信息工程研究所 | 加固应用程序的脱壳方法及装置 |
CN106022130B (zh) * | 2016-05-20 | 2019-03-22 | 中国科学院信息工程研究所 | 加固应用程序的脱壳方法及装置 |
CN107784204A (zh) * | 2016-08-31 | 2018-03-09 | 百度在线网络技术(北京)有限公司 | 应用脱壳方法和装置 |
CN107784204B (zh) * | 2016-08-31 | 2021-10-22 | 百度在线网络技术(北京)有限公司 | 应用脱壳方法和装置 |
CN108090353A (zh) * | 2017-11-03 | 2018-05-29 | 哈尔滨安天科技股份有限公司 | 一种基于知识驱动的加壳代码回归检测方法及系统 |
CN108073814A (zh) * | 2017-12-29 | 2018-05-25 | 哈尔滨安天科技股份有限公司 | 基于静态结构化脱壳参数的脱壳方法、系统及存储介质 |
CN108073814B (zh) * | 2017-12-29 | 2021-10-15 | 安天科技集团股份有限公司 | 基于静态结构化脱壳参数的脱壳方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102184363B (zh) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102184363B (zh) | 基于综合处理的软件壳自动脱壳方法 | |
CN103646209B (zh) | 基于云安全拦截捆绑软件的方法和装置 | |
CN102222184B (zh) | 一种进行移动终端病毒杀毒的方法及系统 | |
CN105488397B (zh) | 一种基于情境的rop攻击检测系统及方法 | |
CN102184103B (zh) | 软件保护壳的壳特征提取方法 | |
CN101506815A (zh) | 用于安全系统的双处理器结构 | |
CN103106372A (zh) | 用于Android系统的轻量级隐私数据加密方法及系统 | |
CN104036200B (zh) | 基于指纹标记的数据分类及加密方法、系统及移动终端 | |
CN104598831B (zh) | 一种数据安全的保护方法及终端 | |
RU2009116231A (ru) | Архитектура виртуального модуля безопасности | |
CN103294950A (zh) | 一种基于反向追踪的高威窃密恶意代码检测方法及系统 | |
CN106991324A (zh) | 一种基于内存保护类型监控的恶意代码跟踪识别方法 | |
CN101667232A (zh) | 基于可信计算的终端可信保障系统与方法 | |
CN110351255B (zh) | 一种网络靶场系统中的数据采集方法及数据采集系统 | |
CN102508792A (zh) | 一种实现硬盘数据安全访问的方法 | |
CN106713618A (zh) | 一种验证码的处理方法及移动终端 | |
CN102207914A (zh) | 装载应用程序的硬件加密tf卡 | |
Greengard | The worsening state of ransomware | |
CN108287779A (zh) | 一种Windows启动项监控方法及系统 | |
CN102222292A (zh) | 一种手机支付保护方法 | |
WO2005110565A3 (en) | Protecting a gaming machine from rogue code | |
CN102708632B (zh) | 一种pos机中敏感数据的保护方法及保护装置 | |
CN111177773A (zh) | 一种基于网卡rom的全盘加解密方法及系统 | |
CN107509180B (zh) | 一种自动加密短信的方法、存储设备及移动终端 | |
CN104809409A (zh) | 一种保护个人隐私的征信数据分散采集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130925 Termination date: 20160521 |