黑客防线,在攻与防的对立统一中寻求突破!2001年创刊的黑客技术专业刊物!

设为首页
收藏本站
联系我们
网站导航

黑客文章 - 加密解密 - 浏览 - Unpack Acprotect 1.21 (三)程序修复

Unpack Acprotect 1.21 (三)程序修复

黑客 发布日期:2008-4-20 11:53:03 共有 395 人次浏览
Unpack Acprotect 1.21 (三)程序修复

呵呵,又回家了。各位兄弟好!  
该说说这第三个问题了。前有shinegood的脱壳版,后有tDasm的修复文章,我这个不会又...?管他的,一则说过的话总要兑现,二则各有各的方法,更何况他们的不是都还有点问题吗。(二者使用了相同的方法来修复)  
修复中主要要解决的是Replace Code的地址,一般情况下,程序把Replace Code放到堆中执行,堆的结构由壳代码初  

始化时建立,这样,去了壳的程序就会出错。这里采用的方法就是修改放置Replace Code的地址。  
od载入已修复iat的程序,隐藏od、忽略所有异常、eip定位到修复的oep、在6d540c处设断,执行程序。断下光标移到6b55b7,按F4,看到:  
006D55B7  CALL Acprotect.006E1460  
006D55BC  MOV EAX,DWORD PTR SS:[ESP+20]                 ;获得返回地址  
006D55C0  XOR ECX,ECX  
006D55C2  MOV EBX,DWORD PTR SS:[EBP+ECX*4+4026E2]       ;取表中元素  
006D55C9  ADD EBX,DWORD PTR SS:[EBP+40D2AA]             ;加Image Base  
006D55CF  CMP EAX,EBX                                   ;  
006D55D1  JE SHORT Acprotect.006D55DA                   ;查表  
006D55D3  NOP  
006D55D4  NOP  
006D55D5  NOP  
006D55D6  NOP  
006D55D7  INC ECX  
006D55D8  JMP SHORT Acprotect.006D55C2                  ;再找  
006D55DA  MOV DWORD PTR SS:[EBP+ECX*4+4026E2],0         ;找到后把这个元素从表中删除  
006D55E5  LEA ESI,DWORD PTR SS:[EBP+4055C2]             ;取(变形)Replace Code表基地址  
006D55EB  MOV EAX,0A  
006D55F0  MUL ECX  
006D55F2  ADD ESI,EAX                                   ;得到本次应取(变形)Replace Code地址  
006D55F4  PUSH ESI  
006D55F5  PUSH ECX  
006D55F6  MOV AL,BYTE PTR SS:[EBP+4023FC]               ;取还原Replace Code的操作数  
006D55FC  OR AL,AL  
006D55FE  JNZ SHORT Acprotect.006D5628                  ;跳,则操作数已经存在  
006D5600  NOP  
006D5601  NOP  
006D5602  NOP  
006D5603  NOP  
006D5604  MOV EAX,DWORD PTR SS:[EBP+40D2AA]             ;  
006D560A  MOV ESI,DWORD PTR DS:[EAX+3C]                 ;  
006D560D  ADD ESI,DWORD PTR SS:[EBP+40D2AA]             ;  
006D5613  ADD ESI,28                                    ;  
006D5616  LODS DWORD PTR DS:[ESI]                       ;得到Entry Point值  

1/2页次 第1页 第2页 下一页 最后一页
所属分类: 加密解密     网摘收藏: Google 雅虎 百度 POCO 365key 和讯 天极