首页
社区
课程
招聘
[原创]RM转换精灵V 7.1 主程序脱壳
发表于: 2006-2-20 02:03 9567

[原创]RM转换精灵V 7.1 主程序脱壳

2006-2-20 02:03
9567

【文章标题】: RM转换精灵V 7.1 主程序脱壳
【作    者】: xiaoboy
【邮    箱】: [email]xiao-boy@qq.com[/email]
【主    页】: 木有
【软件名称】: RM转换精灵脱壳
【下载地址】: http://www.flyhua.net
【加壳方式】: 未知壳
【保护方式】: IAT加密
【工    具】: flyODBG、PEiD、ImportREC
【操作平台】: XPSP2
【软件介绍】: 可以把rm和rmvb文件转换为AVI、VCD、SVCD、DVD、MPE
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 小弟弟一次写脱文 有错误之处请多多指教!
--------------------------------------------------------------------------------
【详细过程】
  1. 找OEP
           peid显示:Microsoft Visual C++ 6.0 [Overlay] 不知道什么壳 先用peid 得插件试试找OEP (本人的一向习惯)
     居然提示00518460,不知道是真的还是假的
  
  2 二、dump程序
     用flyODBG载入 停在下面
  0066D000 R>  55                     PUSH EBP
  0066D001     8BEC                   MOV EBP, ESP
  0066D003     6A FF                  PUSH -1
  0066D005     68 2A2C0A00            PUSH 0A2C2A
  0066D00A     68 38900D00            PUSH 0D9038
  0066D00F     64:A1 00000000         MOV EAX, DWORD PTR FS:[0]
  
  
  Ctrl+G 00518460
  
  00518460    .  0000                 ADD BYTE PTR DS:[EAX], AL
  00518462    ?  0000                 ADD BYTE PTR DS:[EAX], AL
  00518464    ?  0000                 ADD BYTE PTR DS:[EAX], AL
  00518466    .  0000                 ADD BYTE PTR DS:[EAX], AL
  00518468    ?  0000                 ADD BYTE PTR DS:[EAX], AL
  0051846A    ?  0000                 ADD BYTE PTR DS:[EAX], AL
  
   然后 00518460 处下硬件执行断点,F9运行。停在00518460
  
  00518460    .  55                   PUSH EBP
  00518461    .  8BEC                 MOV EBP, ESP
  00518463    .  83C4 F0              ADD ESP, -10
  00518466    .  53                   PUSH EBX
  00518467    .  B8 C07E5100          MOV EAX, RMtoVCD.00517EC0
  0051846C    .  E8 27E5EEFF          CALL RMtoVCD.00406998
  00518471    .  8B1D 1CE85100        MOV EBX, DWORD PTR DS:[51E81C]          ;  RMtoVCD.0051FBF4
  00518477    .  8B03                 MOV EAX, DWORD PTR DS:[EBX]
  00518479    .  E8 26F0F5FF          CALL RMtoVCD.004774A4
  0051847E    .  A1 A0EA5100          MOV EAX, DWORD PTR DS:[51EAA0]
  00518483    .  8B00                 MOV EAX, DWORD PTR DS:[EAX]
  00518485    .  8B48 6C              MOV ECX, DWORD PTR DS:[EAX+6C]
  00518488    .  B2 01                MOV DL, 1
  0051848A    .  A1 E0685100          MOV EAX, DWORD PTR DS:[5168E0]
  
  以上看来是真的OEP了 是Borland Delphi 6.0 - 7.0编译的。
  接着就用flyODBG自带的Ollydump插件 dump 出来保存。
  本来这就以为收工的了,可是想用ImportREC 修复IAT 时才发现IAT加密了
  以上做的基本无用功。各位不要见笑说我这写些,我只是想把过程写的详细写。
  
  既然加了密,当然就要修复哦,就让我们来跟踪他的IAT表藏那去了。
  00518460    .  55                   PUSH EBP
  00518461    .  8BEC                 MOV EBP, ESP
  00518463    .  83C4 F0              ADD ESP, -10
  00518466    .  53                   PUSH EBX
  00518467    .  B8 C07E5100          MOV EAX, RMtoVCD.00517EC0
  0051846C    .  E8 27E5EEFF          CALL RMtoVCD.00406998 ///这跟进
  00518471    .  8B1D 1CE85100        MOV EBX, DWORD PTR DS:[51E81C]          ;  RMtoVCD.0051FBF4
  00518477    .  8B03                 MOV EAX, DWORD PTR DS:[EBX]
  00518479    .  E8 26F0F5FF          CALL RMtoVCD.004774A4
  
  就到了这里:
  
  00406998   /$  53                   PUSH EBX
  00406999   |.  8BD8                 MOV EBX, EAX
  0040699B   |.  33C0                 XOR EAX, EAX
  0040699D   |.  A3 C0905100          MOV DWORD PTR DS:[5190C0], EAX
  004069A2   |.  6A 00                PUSH 0
  004069A4   |.  E8 2BFFFFFF          CALL RMtoVCD.004068D4   //一般的Borland Delphi 6.0 - 7.0的程序在这都是 kernel32.GetModuleHandleA这个函数 明显加了密 再跟进去
  004069A9   |.  A3 68F65100          MOV DWORD PTR DS:[51F668], EAX
  004069AE   |.  A1 68F65100          MOV EAX, DWORD PTR DS:[51F668]
  
  就到了这里:
  
  004068D4   /$  90                   NOP
  004068D5   |.  E8 DDC6F8FF          CALL 00392FB7   //这里有好多 CALL 00392FB7 不知道做什么的。。再跟
  004068DA   |.  8BC0                 MOV EAX, EAX    //注意记住这个地址。。
  004068DC   |$  90                   NOP
  004068DD   |.  E8 D5C6F8FF          CALL 00392FB7
  004068E2   |.  8BC0                 MOV EAX, EAX
  004068E4   |$  90                   NOP
  004068E5   |.  E8 CDC6F8FF          CALL 00392FB7
  004068EA   |.  8BC0                 MOV EAX, EAX
  004068EC   |$  90                   NOP
  004068ED   |.  E8 C5C6F8FF          CALL 00392FB7
  004068F2   |.  8BC0                 MOV EAX, EAX
  004068F4   |$  50                   PUSH EAX
  004068F5   |.  6A 40                PUSH 40
  
  就到了这里:
  
  00392FB7     50                     PUSH EAX ///这时开始处理表的时候了。那我们就F4到这。
  00392FB8     8BC4                   MOV EAX, ESP
  00392FBA     60                     PUSHAD
  00392FBB     8BD8                   MOV EBX, EAX
  00392FBD     E8 04000000            CALL 00392FC6
  00392FC2     52                     PUSH EDX
  00392FC3     24 39                  AND AL, 39
  00392FC5     005D 8B                ADD BYTE PTR SS:[EBP-75], BL
  00392FC8     6D                     INS DWORD PTR ES:[EDI], DX
  00392FC9     008B 7B048BB5          ADD BYTE PTR DS:[EBX+B58B047B], CL
  00392FCF     7C 0C                  JL SHORT 00392FDD
  00392FD1     0000                   ADD BYTE PTR DS:[EAX], AL
  00392FD3     03F5                   ADD ESI, EBP
  00392FD5     8B06                   MOV EAX, DWORD PTR DS:[ESI]
  00392FD7     33D2                   XOR EDX, EDX
  00392FD9     B9 02000000            MOV ECX, 2
  00392FDE     F7E1                   MUL ECX
  00392FE0     D1E8                   SHR EAX, 1
  00392FE2     3BF8                   CMP EDI, EAX
  00392FE4     75 10                  JNZ SHORT 00392FF6
  00392FE6     0AD2                   OR DL, DL
  00392FE8     75 07                  JNZ SHORT 00392FF1
  00392FEA     E9 A6000000            JMP 00393095
  00392FEF     EB 05                  JMP SHORT 00392FF6
  00392FF1     E9 AA000000            JMP 003930A0
  00392FF6     83C6 08                ADD ESI, 8
  00392FF9     66:9C                  PUSHFW
  00392FFB     E8 04000000            CALL 00393004
  00393000     0010                   ADD BYTE PTR DS:[EAX], DL
  00393002     40                     INC EAX
  00393003     0083 C404EB04          ADD BYTE PTR DS:[EBX+4EB04C4], AL
  00393009     31C8                   XOR EAX, ECX
  0039300B     3F                     AAS
  0039300C     00EB                   ADD BL, CH
  0039300E     04 F0                  ADD AL, 0F0
  00393010     0F4000                 CMOVO EAX, DWORD PTR DS:[EAX]
  00393013     66:9D                  POPFW
  00393015     70 06                  JO SHORT 0039301D
  00393017     71 04                  JNO SHORT 0039301D
  00393019     A8 C8                  TEST AL, 0C8
  0039301B     3F                     AAS
  0039301C     0072 07                ADD BYTE PTR DS:[EDX+7], DH
  0039301F     73 05                  JNB SHORT 00393026
  00393021     880F                   MOV BYTE PTR DS:[EDI], CL
  00393023     E0 3E                  LOOPDNE SHORT 00393063
  00393025     00EB                   ADD BL, CH
  00393027     AD                     LODS DWORD PTR DS:[ESI]
  00393028     74 08                  JE SHORT 00393032
  0039302A     75 06                  JNZ SHORT 00393032
  0039302C     9A 00E03D00 E876       CALL FAR 76E8:003DE000
  00393033     07                     POP ES
  00393034     77 05                  JA SHORT 0039303B
  00393036     E7 BB                  OUT 0BB, EAX
  00393038     EC                     IN AL, DX
  00393039     3E:0078 07             ADD BYTE PTR DS:[EAX+7], BH
  0039303D     79 05                  JNS SHORT 00393044
  0039303F     EA 000F41FF 669C       JMP FAR 9C66:FF410F00
  00393046     EB 06                  JMP SHORT 0039304E
  00393048     E8 01AADB3D            CALL 3E14DA4E
  0039304D     006A 02                ADD BYTE PTR DS:[EDX+2], CH
  00393050     EB 06                  JMP SHORT 00393058
  00393052     E8 A0994700            CALL 0080C9F7
  00393057     9A 7311EB05 E80A       CALL FAR 0AE8:05EB1173
  0039305E     0029                   ADD BYTE PTR DS:[ECX], CH
  00393060     E9 E80C0000            JMP 00393D4D
  00393065     008B FF0F41FE          ADD BYTE PTR DS:[EBX+FE410FFF], CL
  0039306B   ^ 73 F4                  JNB SHORT 00393061
  0039306D     9A 20143100 83C4       CALL FAR C483:00311420
  00393074     04 EB                  ADD AL, 0EB
  00393076     04 D0                  ADD AL, 0D0
  00393078     39C7                   CMP EDI, EAX
  0039307A     00FF                   ADD BH, BH
  0039307C     0C 24                  OR AL, 24
  0039307E     71 04                  JNO SHORT 00393084
  00393080     BA 88260079            MOV EDX, 79002688
  00393085     D27A 01                SAR BYTE PTR DS:[EDX+1], CL
  00393088     E7 83                  OUT 83, EAX
  0039308A     C40466                 LES EAX, FWORD PTR DS:[ESI]
  0039308D     9D                     POPFD
  0039308E     EB 05                  JMP SHORT 00393095
  00393090     B8 EF0F410F            MOV EAX, 0F410FEF
  00393095     8B46 04                MOV EAX, DWORD PTR DS:[ESI+4]
  00393098     8903                   MOV DWORD PTR DS:[EBX], EAX
  0039309A     61                     POPAD
  0039309B     58                     POP EAX
  0039309C     8B00                   MOV EAX, DWORD PTR DS:[EAX]
  0039309E     FFE0                   JMP NEAR EAX
  003930A0     8B46 04                MOV EAX, DWORD PTR DS:[ESI+4]           ; RMtoVCD.005212AC
  // 注意信息窗口
  DS:[0039337B]=005212AC (RMtoVCD.005212AC)
  EAX=004068DA (RMtoVCD.004068DA)
  
  在数据窗口跟踪0039337B 得到如下一个很有规律的对应表:
  
  00393377   804068DA   //这个就是在上面让大家记住的地址。。
  0039337B   005212AC  RMtoVCD.005212AC//这个待会看完下面就知道了。。
  0039337F   80406BCA
  00393383   005212B4  RMtoVCD.005212B4
  00393387   80406BC2
  0039338B   005212B8  RMtoVCD.005212B8
  0039338F   80406BBA
  00393393   005212BC  RMtoVCD.005212BC
  00393397   80406BB2
  0039339B   005212C0  RMtoVCD.005212C0
  0039339F   80406BAA
  003933A3   005212C4  RMtoVCD.005212C4
  003933A7   80406BA2
  003933AB   005212C8  RMtoVCD.005212C8
  
  
  
  接着F7...
  003930A3     8903                   MOV DWORD PTR DS:[EBX], EAX
  003930A5     61                     POPAD
  003930A6     58                     POP EAX
  003930A7     83C4 04                ADD ESP, 4
  003930AA     8B00                   MOV EAX, DWORD PTR DS:[EAX]             ; kernel32.GetModuleHandleA
  到这里,信息窗口里终于出现函数了 。。。
  DS:[005212AC]=7C80B529 (kernel32.GetModuleHandleA)
  EAX=005212AC (RMtoVCD.005212AC)
  
  在数据窗口跟踪005212AC 得到一个很完整的IAT表。。如下
  005212AC   7C80B529  kernel32.GetModuleHandleA  // 这个就是上面对照表的另一个地址数据。。
  005212B0   00000000
  005212B4   77DA7883  ADVAPI32.RegQueryValueExA
  005212B8   77DA761B  ADVAPI32.RegOpenKeyExA
  005212BC   77DA6BF0  ADVAPI32.RegCloseKey
  005212C0   77DA7753  ADVAPI32.OpenProcessToken
  005212C4   77DCD11B  ADVAPI32.LookupPrivilegeValueA
  005212C8   77DCC534  ADVAPI32.AdjustTokenPrivileges
  005212CC   00000000
  005212D0   7C80C729  kernel32.lstrcpyA
  005212D4   7C81EE79  kernel32.lstrcmpA
  005212D8   7C822BB7  kernel32.WritePrivateProfileStringA
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。//其中一部分
  
  003930AC     FFE0                   JMP NEAR EAX    // 跳到函数去了。
  
  下面我们来分析下这个对照表的关系:
  004068D4   /$  90                   NOP
  004068D5   |.  E8 DDC6F8FF          CALL 00392FB7   //这里有好多 CALL 00392FB7 不知道做什么的。。再跟
  004068DA   |.  8BC0                 MOV EAX, EAX    //注意记住这个地址。。
  004068DC   |$  90                   NOP
  
  
  
  00393377   804068DA   //这个就是在上面让大家记住的地址。。
  0039337B   005212AC  RMtoVCD.005212AC//这个待会看完下面就知道了。。
  
  
  005212AC   7C80B529  kernel32.GetModuleHandleA  // 这个就是上面对照表的另一个地址数据。。
  005212B0   00000000
  
  这下子清晰了吧, 这个表就是根据call 392FB7 地址来得到对应的函数的对照表。
  
  既然这样就写代码修复吧,重新打开flyODBG载入程序 下断00518460, F9运行就停在OEP了。
  然后找个空白段写入以下代码:
  90                     NOP //然后在这新建EIP
  00394237     60                     PUSHAD
  00394238     9C                     PUSHFD
  00394239     BB A7313900            MOV EBX, 3931A7 //对照表开始位置
  0039423E     8B03                   MOV EAX, DWORD PTR DS:[EBX]
  00394240     2D 00000080            SUB EAX, 80000000
  00394245     66:C740 FB FF25        MOV WORD PTR DS:[EAX-5], 25FF
  0039424B     8B4B 04                MOV ECX, DWORD PTR DS:[EBX+4]
  0039424E     8948 FD                MOV DWORD PTR DS:[EAX-3], ECX
  00394251     83C3 08                ADD EBX, 8
  00394254     81FB 17413900          CMP EBX, 394117
  0039425A     7D 0A                  JGE SHORT 00394266 //对照表结束位置
  0039425C   ^ EB E0                  JMP SHORT 0039423E
  0039425E     0000                   ADD BYTE PTR DS:[EAX], AL
  00394260     0000                   ADD BYTE PTR DS:[EAX], AL
  00394262     0000                   ADD BYTE PTR DS:[EAX], AL
  00394264     0000                   ADD BYTE PTR DS:[EAX], AL
  00394266     9D                     POPFD
  00394267     61                     POPAD  //结束
  
  现在回到OEP 在新建EIP后用flyODBG自带的Ollydump插件 dump 出来保存。
  
   
  打开 ImportREC 选择程序 OPE:00118460 ,然后自动查找IAT,获取输入表。
  这会得到一个完好的表了。
  修复之后运行正常。。。
    
  小弟第一次写脱文有什么不到之处请多多包函。。
  
--------------------------------------------------------------------------------
【版权声明】: 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年02月16日 02:01:39


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (27)
雪    币: 191
活跃值: (345)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
2
不 错。
2006-2-20 03:00
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
支持!
2006-2-20 09:19
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
支持,对于这种壳我总是用补区段的偷懒办法,还不会修复, 学习了
2006-2-20 09:29
0
雪    币: 319
活跃值: (2439)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
5
程序没有破坏输入表,PATH后可以直接用原来的输入表,不必用ImportREC来修复。
2006-2-20 10:14
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
鼓励新人
加精华
2006-2-20 11:35
0
雪    币: 239
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持!~~~
修复的方法不错!~~~
2006-2-20 11:48
0
雪    币: 224
活跃值: (75)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
最初由 csjwaman 发布
程序没有破坏输入表,PATH后可以直接用原来的输入表,不必用ImportREC来修复。

可是不修复不可以运行阿。
2006-2-20 12:12
0
雪    币: 424
活跃值: (3353)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
好!支持!
2006-2-20 19:21
0
雪    币: 222
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
支持+学习
2006-2-21 01:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我顶一下、因写得不错,我是实习的。
2006-2-21 09:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错,有收获呀。
2006-2-21 09:16
0
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
跟以前的(6.x)没什么变化,很像 hying
2006-2-21 12:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
向LZ学习!致敬
2006-2-22 08:00
0
雪    币: 269
活跃值: (51)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
正在学习脱壳,很好的教程.
2006-4-9 16:34
0
雪    币: 343
活跃值: (611)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
16
莫人老版
会脱的唯一一个壳
2006-4-9 19:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
新手问个问题:如果软件是多重加壳,那么脱壳方法又是怎样的呢?
有没有教程?
2006-4-10 10:24
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
向你学习呀,我看看觉得有难度呀!
2006-4-10 14:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错,有收获呀。
2006-4-10 20:25
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我正在学习脱这个壳,下了和楼主同一个版本的软件,可我遇到了几个问题:
1、00392FB7     50                     PUSH EAX ///这时开始处理表的时候了。那我们就F4到这。
  00392FB8     8BC4                   MOV EAX, ESP
  00392FBA     60                     PUSHAD
“这个F4怎么按啊,该在那个行按F4”?
2、 然后找个空白段写入以下代码:
  90                     NOP //然后在这新建EIP
  00394237     60                     PUSHAD
  00394238     9C                     PUSHFD
在这儿新建EIP后,程序就从当前的EIP处运行,可不会有什么结果啊?
3、  00394267     61                     POPAD  //结束   
  现在回到OEP 在新建EIP后用flyODBG自带的Ollydump插件 dump 出来保存。这个OEP是指00118460吗?如果是,是怎样回到这个地址的?
4、新加入的这段代码是什么意思,是如何知道要加入这些代码呢?
我还没有入门,请多指教,谢谢
2006-4-10 23:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
支持原创,好东西哦
2006-4-13 18:20
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
22
第一次写脱文就这么强 说的这么明白
支持!
奇怪,这么好的文章发表2月才看到,大家要顶啊
2006-4-13 19:17
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
23
最初由 ForEver 发布
莫人老版
会脱的唯一一个壳
2006-4-13 20:36
0
雪    币: 436
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我也来支持一下!!!
真是来到这里看来是来对地方了!!
2006-4-14 23:47
0
雪    币: 87
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
我是一个菜鸟对下面这段话不能理解,肯请哪位大大能再帮忙解释一下下面加入代码是怎样得来的?
谢谢!!!

这下子清晰了吧, 这个表就是根据call 392FB7 地址来得到对应的函数的对照表。
  
  既然这样就写代码修复吧,重新打开flyODBG载入程序 下断00518460, F9运行就停在OEP了。
  然后找个空白段写入以下代码:
  90                     NOP //然后在这新建EIP
  00394237     60                     PUSHAD
  00394238     9C                     PUSHFD
  00394239     BB A7313900            MOV EBX, 3931A7 //对照表开始位置
  0039423E     8B03                   MOV EAX, DWORD PTR DS:[EBX]
  00394240     2D 00000080            SUB EAX, 80000000
  00394245     66:C740 FB FF25        MOV WORD PTR DS:[EAX-5], 25FF
  0039424B     8B4B 04                MOV ECX, DWORD PTR DS:[EBX+4]
  0039424E     8948 FD                MOV DWORD PTR DS:[EAX-3], ECX
  00394251     83C3 08                ADD EBX, 8
  00394254     81FB 17413900          CMP EBX, 394117
  0039425A     7D 0A                  JGE SHORT 00394266 //对照表结束位置
  0039425C   ^ EB E0                  JMP SHORT 0039423E
  0039425E     0000                   ADD BYTE PTR DS:[EAX], AL
  00394260     0000                   ADD BYTE PTR DS:[EAX], AL
  00394262     0000                   ADD BYTE PTR DS:[EAX], AL
  00394264     0000                   ADD BYTE PTR DS:[EAX], AL
  00394266     9D                     POPFD
  00394267     61                     POPAD  //结束
  
  现在回到OEP 在新建EIP后用flyODBG自带的Ollydump插件 dump 出来保存。
  
   
  打开 ImportREC 选择程序 OPE:00118460 ,然后自动查找IAT,获取输入表。
  这会得到一个完好的表了。
  修复之后运行正常。。。
2006-4-15 15:36
0
游客
登录 | 注册 方可回帖
返回
//