您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 网络安全 >> 黑客攻防 >> 正文

Google
推荐:nspack3.5主程序脱壳分析(Aspr SKE 2.X)
作者:佚名 文章来源:不详 点击数: 更新时间:2007-4-20 21:56:40
    虚拟主机 域名注册
    nspack 3.5 主程序脱壳介绍
xp sp2
flyodbg
Aspr SKE 2.X


零需要哪里就重新来过重点分析哪里
come on let's go


一PEiD可以不用, 但LordPE一定要先加载看看
.rsrc段上面有三个区段,没有名字,不过可以猜到是.text、.rdata和.data段,是VC的程序


二看看能不能在OD下跑起来
OD载入nspack.exe,忽略所有异常,清除所有断点, 打上IsDebuggerPresent插件
F9运行gogogo~
正常情况下能跑起来,alt+e看看加载的dll,看到有msvcrt.dll,没有发现mfc的dll
所以是普通VC或MFC静态
我猜我猜我猜猜猜


三到oep看看
重来,OD截入,忽略所有...清除...打上..插件
到GetVersion的末尾retn下断
 
  7C8114AB kernel32.GetVersion64:A1 18000000 mov eax,dword ptr fs:[18]
  7C8114B18B48 30mov ecx,dword ptr ds:[eax+30]
  7C8114B48B81 B0000000mov eax,dword ptr ds:[ecx+B0]
  7C8114BA0FB791 AC000000movzx edx,word ptr ds:[ecx+AC]
  7C8114C183F0 FExor eax,FFFFFFFE
  7C8114C4C1E0 0Eshl eax,0E
  7C8114C70BC2 or eax,edx
  7C8114C9C1E0 08shl eax,8
  7C8114CC0B81 A8000000or eax,dword ptr ds:[ecx+A8]
  7C8114D2C1E0 08shl eax,8
  7C8114D50B81 A4000000or eax,dword ptr ds:[ecx+A4]
  7C8114DBC3 retn//这里下断

F9运行,断下,F8返回,向上看看,看到oep了

  00486C6855 push ebp
  00486C698BEC mov ebp,esp
  00486C6B6A FFpush -1
  00486C6D68 38FB4A00push nSpack.004AFB38
  00486C7268 50554800push nSpack.00485550
  00486C7764:A1 00000000 mov eax,dword ptr fs:[0]
  00486C7D50 push eax
  00486C7E64:8925 00000000 mov dword ptr fs:[0],esp
  00486C8583EC 58sub esp,58
  00486C8853 push ebx
  00486C8956 push esi
  00486C8A57 push edi
  00486C8B8965 E8mov dword ptr ss:[ebp-18],esp
  00486C8EFF15 6C724A00call dword ptr ds:[4A726C]; kernel32.GetVersion
  00486C9433D2 xor edx,edx// GetVersion返回到这里

VC6会GetVersion,VC7会GetVersionExA,可以都在末尾下断,到时候看哪个像oep附近就是了


四输入表
GetVersion是在[4A726C],那么到那个地方向上看看,向下看看,找输入表的范围
结果
4A7000 到 4A7688
输入表没有加密 :)
有时候aspr SKE 2.X会把输入表加密,把一部分导入函数地址改的乱七八糟,可那些加密的地址是不存在的。
那它怎么用那里的导入函数呢? 其实它把代码中所有对加密导入函数的调用从原先的call [IAT]或jmp [IAT]
改成了call 00EA0000这种样子,从它自己的call 00EA0000进入导入函数,这样那些加密的导入函数就可以随便
写一个不存在的地址了。

如果输入表加密了,你可以这样完整修复:
OD截入,忽略所有...清除...打上..插件
随便对一个导入函数地址下内存写断点,比如这里GetVersion的4A726C
断了若干次后到这里
  00C5764D8902mov dword ptr ds:[edx],eax ; // eax指向GetVersion的地址,写入ebx = 4A726C
  00C5764FE9 20010000 jmp 00C57774

  00C577748B45 0C mov eax,dword ptr ss:[ebp+C]
  00C577778300 04 add dword ptr ds:[eax],4
  00C5777A8D85 FAFEFFFF lea eax,dword ptr ss:[ebp-106]
  0

[1] [2] [3] [4] [5] 下一页

  • 上一篇文章:

  • 下一篇文章:
  • 相关专题:
     
     网友评论:(评论内容只代表网友观点,与本站立场无关!)
    GOOGLE广告

    阅读排行

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
    中国教师站

    中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
    [备用域名:www.JXZYW.Com] 有事请留言有事请留言
    【实力成就精品 诚信呵护品牌】

    信息产业部备案
    苏ICP备06018635号