吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 39671|回复: 73
收起左侧

[原创] UPX防脱壳机脱壳、去除特征码、添加花指令小探

  [复制链接]
dsong 发表于 2015-2-4 22:11
本帖最后由 dsong 于 2015-2-4 22:13 编辑

在这个寒假,我的空余时间不多了,这个寒假最后一个帖子来扯扯其他话题。技术太菜不要喷啊!

(1)防脱壳机脱壳
大家都知道,UPX是一个开源软件,而且它本身除了压缩也有解压的功能,即upx -d。如何防止被轻松解压缩,其实方法很简单.
我们试验的程序是一个 很小的E-pointer,用UPX给它压缩:
  1.                        Ultimate Packer for eXecutables
  2.                           Copyright (C) 1996 - 2013
  3. UPX 3.91w       Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

  4.         File size         Ratio      Format      Name
  5.    --------------------   ------   -----------   -----------
  6.      90112 ->     40960   45.45%    win32/pe     packed.exe

  7. Packed 1 file.
复制代码

应该说压缩率是非常不错的。现在我们使用UPX的Unpack功能试试看:
  1. C:\Documents and Settings\Administrator>"C:\Documents and Settings\Administrator
  2. \桌面\upx391w\upx.exe" "C:\Documents and Settings\Administrator\桌面\packed.exe"
  3. -d -o"C:\Documents and Settings\Administrator\桌面\unpacked.exe"
  4.                        Ultimate Packer for eXecutables
  5.                           Copyright (C) 1996 - 2013
  6. UPX 3.91w       Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

  7.         File size         Ratio      Format      Name
  8.    --------------------   ------   -----------   -----------
  9.      90112 <-     40960   45.45%    win32/pe     unpacked.exe

  10. Unpacked 1 file.
复制代码

应该说它解压的非常完美。貌似和没压缩的一模一样??. PEID查壳试试看:
  1. PEiD v0.94
  2. 文件: :\Documents and Settings\Administrator\桌面\unpacked.e   ...
  3.   入口点:     00006023                 EP 区段:   text           
  4.   文件偏移量: 00006023                 首字节:   55,8B,EC,6A     
  5.   连接器版本:  .0                      子系统:   Win32 GUI      
  6.   Microsoft Visual C++ 6.0
  7.   多重扫描( )  任务查看器( )    选项( )      关于( )       关闭
  8.     总是置于最前( )                                       扩展    >

  9. 区段查看器
  10.   名称      V. 偏移   V. 大小    R. 偏移   R. 大小    标志
  11.   .text      00001000  00009A82   00001000  0000A000   60000020
  12.   .rdata     0000B000  00001DB4   0000B000  00002000   40000040
  13.   .data      0000D000  00003D98   0000D000  00003000   C0000040
  14.   .rsrc      00011000  00005818   00010000  00006000   40000040
  15.                                 关闭( )
复制代码

可以说,所有信息包括区段名称等全部都正确。我们开始先尝试一下怎样去防止-d。
<1>修改区段名
我们看看加壳后的区段:
  1. 区段查看器
  2.   名称      V. 偏移   V. 大小    R. 偏移   R. 大小    标志
  3.   UPX0       00001000  0000F000   00000400  00000000   E0000080
  4.   UPX1       00010000  00009000   00000400  00008400   E0000040
  5.   .rsrc      00019000  00002000   00008800  00001800   C0000040

  6.                                 关闭( )
复制代码

最明显的特征:UPX0,UPX1,我们改掉它,拿出Winhex,U改成R:
  1. Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
  2. 000001D0   52 50 58 30                                        RPX0
复制代码

结果:
  1.                        Ultimate Packer for eXecutables
  2.                           Copyright (C) 1996 - 2013
  3. UPX 3.91w       Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

  4.         File size         Ratio      Format      Name
  5.    --------------------   ------   -----------   -----------
  6. upx: C:\Documents and Settings\Administrator\桌面\packed.exe: CantUnpackExceptio
  7. n: file is modified/hacked/protected; take care!!!
复制代码

呵呵,好神奇!(其实一点都不奇怪)
<2>改标识
我们把RPX改回UPX,看到这里:
  1. Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
  2. 000003D0   00 00 00 00 00 00 00 00  00 00 00 33 2E 39 31 00              3.91
  3. 000003E0   55 50 58 21 0D 09 02 08  5A 34 28 27 60 95 D0 97   UPX!    Z4('`曅?
  4. 000003F0   AA 6B 01 00 0A 81 00 00  00 60 01 00 26 05 00 9F   猭   ?  `  &  
复制代码

可以发现特征UPX!我们再来改改:
  1. Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
  2. 000003D0   00 00 00 00 00 00 00 00  00 00 00 30 2E 30 30 00              0.00
  3. 000003E0   76 6D 70 21 0D 09 02 08  5A 34 28 27 60 95 D0 97   vmp!    Z4('`曅
复制代码


同样的出错语句,不贴了。其实0x3db到0x3FF都可以用00填充,对于程序运行无影响.

(2)去掉UPX特征码
前面的修改方法太菜了吧,PEiD检测一下修改过的文件:
  1.      PEiD v0.94PEiD v0.94
  2. 文件: :\Documents and Settings\Administrator\桌面\packed.exe   ...
  3. 入口点:     00018110                 EP 区段:  UPX1            
  4. 文件偏移量: 00008510                 首字节:   60,BE,00,00     
  5. 连接器版本:  .0                      子系统:   Win32 GUI      
  6. UPX -> [url]www.upx.sourceforge.net[/url] *
  7. 多重扫描( )  任务查看器( )    选项( )      关于( )       关闭
  8.    总是置于最前( )                                       扩展    >
复制代码

ExEinfoPE:
  1. 文件:  packed.exe                                                                                          H        R
  2.                       00018110             oo    <                                        UPX1                     ...    ->   96MB
  3.                       00008510                                                  60,BE,00,00,41              S        插件
  4.                         .0                                                             Windows GUI                      关于
  5.                       0000A000h           <                                                   NO   00000000                 选项
  6.                                                                                                                                   退出
  7. UPX 0.89 - 3.xx -> Markus & Laszlo ver. [ 0.00 ] <- info from file. ( sig   >
  8.                                                                                                                                       提取
  9. unpack "upx.exe -d"  from  [url]http://upx.sf.net[/url] or any UPX/Generic unpa     i                 >>
复制代码

呵呵,解决方案都出来了,区段名只要修复成UPX即可用upx -d了,但是对于前面提到的0x3e0~0x3ff的数据被填充的话,就不一定能恢复成功。但是著名的MistHill大牛早就针对这种东西做深入研究并写了一个检验性不那么强的脚本"UPX Unpacker for Dummies",用它可以脱掉,所以我们要改掉UPX的特征码,让它识别不出是UPX加壳。
以下信息是仔细阅读userdb.txt后总结出来的:
  1. 特征码1:60 BE ?? ?? ?? 00 8D BE ?? ?? ?? FF
  2. 特征码2:60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ?? 57 EB 0B 90 8A 06 46 88 07 47 01 DB 75 ?? 8B 1E 83 ?? ?? 11 DB 72 ?? B8 01 00 00 00 01 DB 75
  3. 特征码3:55 FF 96 ?? ?? ?? ?? 09 C0 74 07 89 03 83 C3 04 EB ?? FF 96 ?? ?? ?? ?? 8B AE ?? ?? ?? ?? 8D BE 00 F0 FF FF BB 00 10 00 00 50 54 6A 04 53 57 FF D5 8D 87 ?? ?? 00 00 80 20 7F 80 60 28 7F 58 50 54 50 53 57 FF D5 58 61 8D 44 24 80 6A 00 39 C4 75 FA 83 EC 80
复制代码

把加壳程序载入OD:
对付特征码1:
修改前:
  1. 00418110 >  60              pushad
  2. 00418111    BE 00004100     mov esi,packed.00410000
  3. 00418116    8DBE 0010FFFF   lea edi,dword ptr ds:[esi+FFFF1000]
  4. 0041811C    57              push edi
  5. 0041811D    EB 0B           jmp short packed.0041812A
  6. 0041811F    90              nop
  7. 00418120    8A06            mov al,byte ptr ds:[esi]
复制代码

修改后:
  1. 00418130 >  60              pushad
  2. 00418131    90              nop
  3. 00418132    BE 00004100     mov esi,Ep_2_5_1.00410000
  4. 00418137    8DBE 0010FFFF   lea edi,dword ptr ds:[esi+FFFF1000]
  5. 0041813D    57              push edi
  6. 0041813E    EB 0A           jmp short Ep_2_5_1.0041814A
  7. 00418140    8A06            mov al,byte ptr ds:[esi]
  8. 00418142    46              inc esi
复制代码

(这样改貌似把原来入口点的花指令弄没了。。。不过没关系,入口点的花指令没用。)
对付特征码2:
修改前:
  1. 00418131  ^\72 ED           jb short packed.00418120
  2. 00418133    B8 01000000     mov eax,1
  3. 00418138    01DB            add ebx,ebx
复制代码

修改后:
  1. 00418151  ^\72 ED           jb short Ep_2_5_1.00418140
  2. 00418153    33C0            xor eax,eax
  3. 00418155    40              inc eax
  4. 00418156    8BC0            mov eax,eax
  5. 00418158    01DB            add ebx,ebx
复制代码

对付特征码3:
修改前:
  1. 00418295    39C4            cmp esp,eax
  2. 00418297  ^ 75 FA           jnz short packed.00418293
  3. 00418299    83EC 80         sub esp,-80
  4. 0041829C  - E9 82DDFEFF     jmp packed.00406023
复制代码

修改后:
  1. 00418295    39C4            cmp esp,eax
  2. 00418297  ^ 0F85 F6FFFFFF   jnz packed.00418293
  3. 0041829D    83EC 80         sub esp,-80
  4. 004182A0  - E9 7EDDFEFF     jmp packed.00406023
复制代码

(其实就是把jnz short XXX改成jnz long XXX,long的不能改short,那么short的为什么不能改long呢?)
测试一下,程序仍能执行,但是.......
PEiD:
  1.      PEiD v0.94PEiD v0.94
  2. 文件: :\Documents and Settings\Administrator\桌面\packed.exe   ...
  3. 入口点:     00018110                 EP 区段:  UPX1            
  4. 文件偏移量: 00008510                 首字节:   60,90,BE,00     
  5. 连接器版本:  .0                      子系统:   Win32 GUI      
  6. yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h) *
  7. 多重扫描( )  任务查看器( )    选项( )      关于( )       关闭
  8.    总是置于最前( )                                       扩展    >
复制代码

ExEinfoPE:
  1. 文件:  packed.exe                                                                                          H        R
  2.                       00018110             oo    <                                        UPX1                     ...    ->   96MB
  3.                       00008510                                                  60,90,BE,00,00              S        插件
  4.                         .0                                                             Windows GUI                      关于
  5.                       0000A000h           <                                                   NO   00000000                 选项
  6.                                                                                                                                   退出
  7. Unknown Packer-Protector , 3 sections  like UPX  S-Structure UPX!           >
  8.                                                                                                                                       提取
  9. try :   Protection_ID.exe  from [url]http://pid.gamecopyworld.com[/url] ,   PEiD.    i                 >>
复制代码

看看,PEiD已经认不出了,ExEinfoPE有点识别出来,看来是它强啊,不过没关系,待会也爆了它.
爆ExEinfoPE的方法:
<1>加垃圾区段:
拿出神器LordPE:
  1. [ 区段表 ]
  2.   名称         V.偏移      V.大小      R.偏移      R.大小      标志
  3. UPX0         00001000    0000F000    00000400    00000000    E0000080
  4. UPX1         00010000    00009000    00000400    00008400    E0000040
  5. .rsrc        00019000    00002000    00008800    00001800    C0000040
  6. .dsong       0001B000    00000200    0000A000    00000200    E00000E0
复制代码

再用Winhex在文件尾部粘帖512个00,完成后,测试可以运行. 再拖入ExEinfoPE:
  1. 文件:  复件 packed.exe                                                                                 H        R
  2.                       00018110             oo    <                                        UPX1                     ...    ->   96MB
  3.                       00008510                                                  60,90,BE,00,00              S        插件
  4.                         .0                                                             Windows GUI                      关于
  5.                       0000A200h           <                                                   NO   00000000                 选项
  6.                                                                                                                                   退出
  7. Unknown Packer-Protector , 4 sections                                                      >
  8.                                                                                                                                       提取
  9. try :   Protection_ID.exe  from [url]http://pid.gamecopyworld.com[/url] ,   PEiD.    i                 >>
复制代码

马上就*了。呵呵
至此,此程序已失去大部分UPX特征. 应该够了.
<2>PE头移动
拿出神器Winhex:
编辑前:
  1. Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
  2. 00000000   4D 5A 90 00 03 00 00 00  04 00 00 00 FF FF 00 00   MZ?        &#63733;&#63733;  
  3. 00000010   B8 00 00 00 00 00 00 00  40 00 00 00 00 00 00 00   ?      @      
  4. 00000020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  5. 00000030   00 00 00 00 00 00 00 00  00 00 00 00 D8 00 00 00               ?  
  6. 00000040   0E 1F BA 0E 00 B4 09 CD  21 B8 01 4C CD 21 54 68     ? ???L?Th
  7. 00000050   69 73 20 70 72 6F 67 72  61 6D 20 63 61 6E 6E 6F   is program canno
  8. 00000060   74 20 62 65 20 72 75 6E  20 69 6E 20 44 4F 53 20   t be run in DOS
  9. 00000070   6D 6F 64 65 2E 0D 0D 0A  24 00 00 00 00 00 00 00   mode.   [        DISCUZ_CODE_49        ]nbsp;      
  10. 00000080   99 3C 71 89 DD 5D 1F DA  DD 5D 1F DA DD 5D 1F DA   ?q壿] 谳] 谳] ?
  11. 00000090   5E 41 11 DA D2 5D 1F DA  53 55 40 DA DC 5D 1F DA   ^A 谝] 赟U@谲] ?
  12. 000000A0   DD 5D 1E DA 66 5D 1F DA  5E 55 42 DA CE 5D 1F DA   輂 趂] 赹UB谖] ?
  13. 000000B0   35 42 14 DA DF 5D 1F DA  35 42 15 DA A9 5D 1F DA   5B 谶] ?B 讴] ?
  14. 000000C0   65 5B 19 DA DC 5D 1F DA  52 69 63 68 DD 5D 1F DA   e[ 谲] 赗ich輂 ?
  15. 000000D0   00 00 00 00 00 00 00 00  50 45 00 00 4C 01 03 00           PE  L   
  16. 000000E0   9A DA 22 4D 00 00 00 00  00 00 00 00 E0 00 0F 01   氌"M        ?  
  17. 000000F0   0B 01 06 00 00 90 00 00  00 20 00 00 00 F0 00 00        ?      ?
  18. 00000100   10 81 01 00 00 00 01 00  00 90 01 00 00 00 40 00    ?      ?   @
  19. 00000110   00 10 00 00 00 02 00 00  04 00 00 00 00 00 00 00                  
  20. 00000120   04 00 00 00 00 00 00 00  00 B0 01 00 00 10 00 00            ?     
  21. 00000130   00 00 00 00 02 00 00 00  00 00 10 00 00 10 00 00                  
  22. 00000140   00 00 10 00 00 10 00 00  00 00 00 00 10 00 00 00                  
  23. 00000150   00 00 00 00 00 00 00 00  D0 A5 01 00 04 02 00 00           啸      
  24. 00000160   00 90 01 00 D0 15 00 00  00 00 00 00 00 00 00 00    ? ?         
  25. 00000170   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  26. 00000180   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  27. 00000190   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  28. 000001A0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  29. 000001B0   00 00 00 00 00 00 00 00                                    
复制代码

编辑后:
  1. Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
  2. 00000000   4D 5A 90 00 03 00 00 00  04 00 00 00 FF FF 00 00   MZ?        &#63733;&#63733;  
  3. 00000010   B8 00 00 00 00 00 00 00  40 00 00 00 00 00 00 00   ?      @      
  4. 00000020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  5. 00000030   00 00 00 00 00 00 00 00  00 00 00 00 40 00 00 00               @   
  6. 00000040   50 45 00 00 4C 01 03 00  9A DA 22 4D 00 00 00 00   PE  L   氌"M   
  7. 00000050   00 00 00 00 78 01 0F 01  0B 01 06 00 00 90 00 00       x        ?
  8. 00000060   00 20 00 00 00 F0 00 00  10 81 01 00 00 00 01 00        ?  ?     
  9. 00000070   00 90 01 00 00 00 40 00  00 10 00 00 00 02 00 00    ?   @         
  10. 00000080   04 00 00 00 00 00 00 00  04 00 00 00 00 00 00 00                  
  11. 00000090   00 B0 01 00 00 10 00 00  00 00 00 00 02 00 00 00    ?            
  12. 000000A0   00 00 10 00 00 10 00 00  00 00 10 00 00 10 00 00                  
  13. 000000B0   00 00 00 00 10 00 00 00  00 00 00 00 00 00 00 00                  
  14. 000000C0   D0 A5 01 00 04 02 00 00  00 90 01 00 D0 15 00 00   啸       ? ?  
  15. 000000D0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  16. 000000E0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  17. 000000F0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  18. 00000100   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  19. 00000110   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  20. 00000120   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  21. 00000130   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  22. 00000140   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  23. 00000150   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  24. 00000160   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  25. 00000170   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  26. 00000180   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  27. 00000190   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  28. 000001A0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                  
  29. 000001B0   00 00 00 00 00 00 00 00                                    
复制代码

提示:1.原来0xec、后来的0x54、0x55处是PE头大小,0x3c是PE头起始位置,所有地址反着写.
测试可以正常运行后,拖进ExEinfoPE,显示:
  1. 文件:  packed_.exe                                                                                        H        R
  2.                       00018110             oo    <                                                                     ...    ->   96MB
  3.                       00018110                                                  00,00,00,00,00              S        插件
  4.                         .0                                                             Windows GUI                      关于
  5.                       0000A000h           <                                                   0000A000                         选项
  6.                                                                                                                                   退出
  7. ExE Corrupted - over 100 bytes are ZERO data - WRONG Entry Point ,   >
  8.                                                                                                                                       提取
  9. try EP Corrector or another Dump method                                                  i                 >>
复制代码

彻底挂. ;-)

(3)添加花指令在入口点代码跳转处,扰乱静态分析(简述)
网上有很多写得很好的花指令,还有防止动态分析的!我没那么高水平,只能玩玩。
花指令成功关键技巧:
1.反汇编器是从上到下的代码分析,所以你可以这样写代码:
  1. l1:
  2. pushad
  3. xor eax,eax
  4. inc eax
  5. cmp eax,eax
  6. je l2-1
  7. jmp l2
  8. l2:
  9. xxxxxx
复制代码

这些代码显而易见,l2-1的命令是执行不到的,只会跳到l2,所以你在l2-1的这个字节随便写个东西就行,但是千万不能是90或CC,否则反汇编器不会被你干扰!千万不能把正确跳转写在前面,否则会被反汇编器识别,就把你l2-1作为数据而不是代码标出来了。
2. 对于EB,E2,90,CC这种代码非常优先分析,很容易直接把它认为是正常代码于是你可以用上面的例子,在l2-1这个字节写上E2,然后就等着反汇编器把它识别到下一个字节去吧。反正一行代码分析错,很容易出现后面的行行代码都错的情况!
3. 增加静态分析步骤还有一个方法就是使用Call dword [0xxxxx]、jmp dword [0xxxx]。比如上面的 例子你已经给eax赋值1,那么你如果要调用的话使用call dword [eax+(0xxxxx-1)]即可.然后你选个好一点的地址,,比如call dword [eax+417290]这样的,地址里面包含90很容易混淆反汇编器的识别!
就比如我那这个程序,我把它修改成这样了:
OD不分析:
  1. 004182B9    BE FFFFFFFF     mov esi,-1
  2. 004182BE    3BC6            cmp eax,esi
  3. 004182C0    74 FF           je short Ep_2_5_1.004182C1
  4. 004182C2    FF96 70834100   call dword ptr ds:[esi+418370]
  5. 004182C8    EB 00           jmp short Ep_2_5_1.004182CA
  6. 004182CA    C0FF A6         sar bh,0A6
  7. 004182CD    90              nop
  8. 004182CE    8341 00 0F      add dword ptr ds:[ecx],0F
  9. 004182D2    54              push esp
  10. 004182D3    2055 8B         and byte ptr ss:[ebp-75],dl
  11. 004182D6    EC              in al,dx
  12. 004182D7    83C4 F1         add esp,-0F
  13. 004182DA    83C4 0F         add esp,0F
  14. 004182DD    B8 7F9B4000     mov eax,Ep_2_5_1.00409B7F
  15. 004182E2    50              push eax
  16. 004182E3    C3              retn
复制代码

OD分析:
  1. 004182B9   .  BE FFFFFFFF   mov esi,-1
  2. 004182BE   .  3BC6          cmp eax,esi
  3. 004182C0   .  74 FF         je short Ep_2_5_1.004182C1
  4. 004182C2   .  FF96 70834100 call dword ptr ds:[esi+418370]
  5. 004182C8   .  EB 00         jmp short Ep_2_5_1.004182CA
  6. 004182CA   >  C0FF A6       sar bh,0A6
  7. 004182CD   .  90            nop
  8. 004182CE   .  8341 00 0F    add dword ptr ds:[ecx],0F
  9. 004182D2   .  54            push esp
  10. 004182D3   .  2055 8B       and byte ptr ss:[ebp-75],dl
  11. 004182D6   .  EC            in al,dx
  12. 004182D7   .  83C4 F1       add esp,-0F
  13. 004182DA   .  83C4 0F       add esp,0F
  14. 004182DD   .  B8 7F9B4000   mov eax,Ep_2_5_1.00409B7F ;注意,其实这个不是OEP......是我找了一个和OEP差不多的地方......
  15. 004182E2   .  50            push eax
  16. 004182E3   .  C3            retn[code]
  17. 其他数值:
  18. [code]0041836F     \CB824100      dd Ep_2_5_1.004182CB
  19. 0041838F      23604000      dd Ep_2_5_1.00406023
复制代码

另外,如果你把代码写在另外一个区段,oD就没法分析了哦!呵呵。
这个花指令只是简单的,如果有更深入的研究,说不定还可以防掉动态调试。。。。嘿嘿。
********************************
上面花指令突破:只要把0x4182CA的C0改成90即可,然后就暴露了:
  1. 004182C1   > \FFFF          ???                                      ;  未知命令
  2. 004182C3   ?  96            xchg eax,esi
  3. 004182C4   ?^ 70 83         jo short Ep_2_5_1.00418249
  4. 004182C6   ?  41            inc ecx
  5. 004182C7   ?  00EB          add bl,ch
  6. 004182C9   ?  0090 FFA69083 add byte ptr ds:[eax+8390A6FF],dl
  7. 004182CF   ?  41            inc ecx
  8. 004182D0   ?  000F          add byte ptr ds:[edi],cl
  9. 004182D2   .  54            push esp
  10. 004182D3   .  2055 8B       and byte ptr ss:[ebp-75],dl
  11. 004182D6   .  EC            in al,dx
  12. 004182D7   .  83C4 F1       add esp,-0F
  13. 004182DA   .  83C4 0F       add esp,0F
  14. 004182DD   .  B8 7F9B4000   mov eax,Ep_2_5_1.00409B7F
  15. 004182E2   .  50            push eax
  16. 004182E3   .  C3            retn
复制代码

额不对,貌似复制出来有问题呵呵,OD里显示还是没问题的。

先发那么多,如果有记起来什么东西再补上.

免费评分

参与人数 18吾爱币 +1 热心值 +18 收起 理由
不浮不躁 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
╰留个小板寸回 + 1 看不懂唉
红V + 1 厉害,学习了
七彩.祝 + 1 谢谢@Thanks!
小鹏丶 + 1 我很赞同!
十年丶诀别 + 1 谢谢@Thanks!
FierceWind + 1 我很赞同!
mybestenjoy + 1 谢谢@Thanks!
han1058349250 + 1 鼓励转贴优秀软件安全工具和文档!
无痕软件 + 1 我很赞同!
蚯蚓翔龙 + 1 可以类推出去哈
阳光鸣鸣 + 1 谢谢@Thanks!
lxczeus + 1 已答复!
羽懿521 + 1 谢谢@Thanks!太厉害啦
ingdear + 1 太厉害了。
Jacve + 1 只知道用LordPE处理再变形,楼主太NB了,这.
repobor + 1 给力教程 可以迷惑PEID的分析
你与明日 + 1 UPX的变异 厉害啊 等下试试

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
zhouhaoxiang 发表于 2015-2-5 23:38
MARK,学习 研究
死神眯路 发表于 2015-2-5 21:08
Hmily 发表于 2015-2-5 15:59
哈哈,不错,方法好多,赞一个,一般修改用upxfix可以修复后在-d脱壳,-d脱壳主要是利用加壳时候把pe信息写到加壳程序里,直接抹掉原始加壳的留下的PE头信息就无法被直接-d脱壳了。

之前出过一个题目,就是这种方式去掉PE头残留信息加壳的,当时@MistHill 也有看过那个程序http://www.52pojie.cn/thread-257046-1-1.html ,这种方式以前是@Kissy写过,是patch upx加壳程序,在写pe信息的时候不让他写,效果棒棒哒。

点评

效果棒棒哒。 ---H大卖萌  发表于 2015-2-6 18:57
nemopwn 发表于 2015-2-5 17:23
Mark住,期待楼主更新。
yt753302 发表于 2015-2-5 17:02 来自手机
支持你美
inat 发表于 2015-2-4 22:29
不知道没自动脱的手动脱的难度大不大,应该也不大吧.
 楼主| dsong 发表于 2015-2-5 08:16
inat 发表于 2015-2-4 22:29
不知道没自动脱的手动脱的难度大不大,应该也不大吧.

手动脱难度是不大,但是静态脱壳是不可能了吧?这里还没有讲到防手脱即防动态分析。
但是你手脱出来完美吗?区段名字还是UPX0、UPX1,资源等数据还是压缩着的.
Sololoヽ 发表于 2015-2-4 22:40
{:1_931:} 这脱壳还没学会- - 防脱就出来了! 没法活了~
影子无爱 发表于 2015-2-4 22:41 来自手机
不懂,留名
1002217709 发表于 2015-2-4 22:55
UPX好难啊,没法破解东西了
微笑嘻嘻 发表于 2015-2-4 23:34
谢谢分享,方法不错
mygod123 发表于 2015-2-5 08:52
谢谢分享,方法不错
JPK 发表于 2015-2-5 09:44
不错 谢谢楼主!!
她的韩冷, 发表于 2015-2-5 10:19 来自手机
哇噻,感谢楼主分享,学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2021-6-25 11:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表