| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
免费服务 我要发布 在线破解 黑客游戏 精华收集 免费空间 网络硬盘 独家报道 黑器点播 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> Hack >> 加密解密 >> 正文 用户登录 新用户注册
乱乱Softwrap脱壳总结         ★★★ 【字体:
乱乱Softwrap脱壳总结
作者:不详 文章来源:华盟收集 点击数: 更新时间:2007-12-25
 本文中的程序:http://www.fractalpc.com/resources/SetupFractalPC30.exe

  取得完整的输入表:

  断点:GetModuleHandleA,普通断点要下在函数末尾,否则会被检测到,当堆栈出现如下内容时,返回:

  0012FF98 00459CF5 返回到 FractalP.00459CF5

  0012FF9C 00000000

  0012FFA0 00B20000

  0012FFA4 0012FFE0 指向下一个 SEH 记录的指针

  壳会检测单步执行,如果能避开检测的话,会来到这里:

  0045B7F6 F6C3 02 test bl, 2

  0045B7F9 74 21 je short 0045B81C 这里决定是否把函数代码抽走,改成jmp

  0045B7FB FFB5 DF1C0000 push dword ptr [ebp+1CDF]

  0045B801 6A 10 push 10

  0045B803 50 push eax

  0045B804 FFB5 DF1C0000 push dword ptr [ebp+1CDF]

  下面是循环的底部:

  0045B827 C1E2 02 shl edx, 2

  0045B82A 83C6 04 add esi, 4

  0045B82D 57 push edi

  0045B82E 51 push ecx

  0045B82F 6A 03 push 3 push 3,所以每个函数会储存3次

  0045B831 59 pop ecx

  0045B832 8D7E F4 lea edi, dword ptr [esi-C]

  0045B835 F3:AB rep stos dword ptr es:[edi] 这里储存需要用到的函数,数据窗口定位在edi上

  0045B837 59 pop ecx

  0045B838 5F pop edi

  0045B839 35 BB82506D xor eax, 6D5082BB

  0045B83E 890413 mov dword ptr [ebx+edx], eax

  0045B841 ^ E9 58FFFFFF jmp 0045B79E

  0045B846 41 inc ecx

  0045B847 ^ E9 94FEFFFF jmp 0045B6E0

  0045B84C FFB5 E31C0000 push dword ptr [ebp+1CE3] 在这里下断,运行,数据窗口会看见函数列表,复制出来.

  然后,找到oep,在oep处中断,把复制出来的输入函数列表挪到原来的输入表的位置,记住每个函数只复制一次就行了,不同的dll中间需要用一行00000000隔开,以利于区分.

  壳没有抽取代码,其主要表现形式有三种:

  第一种:

  CALL [004XXXXX] 变成 CALL [00XXXXXX] 的形式,当然这个形式里面的 00XXXXXX 表现为不同的地址,这里的00XXXXXX是壳里的地址,由于我们跳开了抽取函数代码,所以最后会返回到函数的地址,修复的方法是找到所有这样的地址,然后跟踪一下

  进入一个这样的call:

  首先传递一些参数:

  0045C013 6A 00 push 0

  0045C015 9C pushfd

  0045C016 50 push eax

  0045C017 53 push ebx

  0045C018 8B5C24 10 mov ebx, dword ptr [esp+10]

  0045C01C 53 push ebx

  0045C01D 83EB 06 sub ebx, 6

  0045C020 68 E9260000 push 26E9

  0045C025 68 0000B300 push 0B30000 变形call

  0045C02A C3 retn

  来到00B30000,这里通过堆栈,利用产生的另外几个区段的数据计算出函数地址:

  00B30000 55 push ebp

  00B30001 56 push esi

  00B30002 57 push edi

  00B30003 51 push ecx

  00B30004 52 push edx

  00B30005 50 push eax

  00B30006 BD 1A994500 mov ebp, 45991A

  00B3000B 016C24 18 add dword ptr [esp+18], ebp

  00B3000F 2B9D 962A0000 sub ebx, dword ptr [ebp+2A96]

  00B30015 8BBD DE2A0000 mov edi, dword ptr [ebp+2ADE]

  00B3001B 8B8D DA2A0000 mov ecx, dword ptr [ebp+2ADA]

  00B30021 8BC3 mov eax, ebx

  00B30023 2B85 D22A0000 sub eax, dword ptr [ebp+2AD2]

  00B30029 D3E8 shr eax, cl

  00B3002B 8B0487 mov eax, dword ptr [edi+eax*4]

  00B3002E 8BF0 mov esi, eax

  00B30030 81E6 FFFF0000 and esi, 0FFFF

  00B30036 C1E8 10 shr eax, 10

  00B30039 8BF8 mov edi, eax

  00B3003B 8D043E lea eax, dword ptr [esi+edi]

  00B3003E BA 06639227 mov edx, 27926306

  00B30043 D1E8 shr eax, 1

  00B30045 8BC8 mov ecx, eax

  00B30047 69C9 8466DA44 imul ecx, ecx, 44DA6684

  00B3004D 2BD1 sub edx, ecx

  00B3004F 8B8D FA2A0000 mov ecx, dword ptr [ebp+2AFA]

  00B30055 51 push ecx

  00B30056 8B0CC1 mov ecx, dword ptr [ecx+eax*8]

  00B30059 33CA xor ecx, edx

  00B3005B 3BCB cmp ecx, ebx

  00B3005D 59 pop ecx

  00B3005E 74 0C je short 00B3006C

  00B30060 77 05 ja short 00B30067

  00B30062 8D78 01 lea edi, dword ptr [eax+1]

  00B30065 ^ EB D4 jmp short 00B3003B

  00B30067 8D70 FF lea esi, dword ptr [eax-1]

  00B3006A ^ EB CF jmp short 00B3003B

  00B3006C 8B5C24 1C mov ebx, dword ptr [esp+1C]

  00B30070 3354C1 04 xor edx, dword ptr [ecx+eax*8+4]

  00B30074 0FB61B movzx ebx, byte ptr [ebx]

  00B30077 2BD3 sub edx, ebx

  00B30079 8BB5 EA2A0000 mov esi, dword ptr [ebp+2AEA]

  00B3007F 8B0496 mov eax, dword ptr [esi+edx*4]

  00B30082 35 67B6BDD0 xor eax, D0BDB667

  00B30087 50 push eax

  00B30088 8A00 mov al, byte ptr [eax]

  00B3008A 04 0F add al, 0F

  00B3008C 74 11 je short 00B3009F

  00B3008E F6D8 neg al

  00B30090 2C 23 sub al, 23

  00B30092 74 0B je short 00B3009F

  00B30094 FEC8 dec al

  00B30096 74 07 je short 00B3009F

  00B30098 FEC8 dec al

  00B3009A 74 03 je short 00B3009F

  00B3009C F8 clc

  00B3009D EB 1E jmp short 00B300BD

  00B3009F 8B0424 mov eax, dword ptr [esp]

  00B300A2 8B00 mov eax, dword ptr [eax]

  00B300A4 330424 xor eax, dword ptr [esp]

  00B300A7 C1E8 18 shr eax, 18

  00B300AA 84C0 test al, al

  00B300AC ^ 74 EE je short 00B3009C

  00B300AE 8B0424 mov eax, dword ptr [esp]

  00B300B1 8A40 01 mov al, byte ptr [eax+1]

  00B300B4 34 C3 xor al, 0C3

  00B300B6 ^ 74 E4 je short 00B3009C

  00B300B8 83C4 04 add esp, 4

  00B300BB 50 push eax

  00B300BC F9 stc

  00B300BD 58 pop eax

  00B300BE 73 02 jnb short 00B300C2

  00B300C0 33C0 xor eax, eax

  00B300C2 50 push eax

  00B300C3 5B pop ebx

  00B300C4 58 pop eax

  00B300C5 5A pop edx

  00B300C6 59 pop ecx

  00B300C7 5F pop edi

  00B300C8 5E pop esi

  00B300C9 5D pop ebp

  00B300CA 830424 08 add dword ptr [esp], 8

  00B300CE C2 0400 retn 4

  返回到这里:

  0045C00F 5B pop ebx

  0045C010 58 pop eax

  0045C011 9D popfd

  0045C012 C3 retn

  这只是其中一种00XXXXXX地址 的 CALL [00XXXXXX] 的返回地址,如果里面的00XXXXXX 不同的话返回地址是不同的,跟一下就知道了,由于已经制造好了一个输入表,因此可以在这里比较输入表和这里的esp的值即产生的函数地址,相同的话,就把这句代码修复好.

  比如:401000 call [00XXXXXX] 得到 esp 值是 74142545 而输入表 中 402000的地址也是 74142545 ,那就改成:401000 call [402000],具体操作可以通过path一段代码来自动完成.

[1] [2] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇黑客:

  • 下一篇黑客:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    eXPressor v1.1脱壳技术
    软件破解之手动脱壳4
    软件破解之手动脱壳3
    软件破解教程手动脱壳
    手动脱壳的基础知识
    华夏网管类文章精华总结
    华夏黑客类文章精华总结
    华夏软件类精华总结
    华夏网管类文章精华总结
    华夏黑客类文章精华总结
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号