飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5138|回复: 17

2次内存断点快速脱tElock 0.98壳

[复制链接]

该用户从未签到

发表于 2005-10-10 10:36:34 | 显示全部楼层 |阅读模式
【调试环境】:WinXP、PEiD、ODbyDYK v1.10、ImportREC1.42

【学习目的】:手动脱tElock 0.98 -> tE!壳

【目标软件】:tElock 0.98加壳的win98记事本

【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

------------------------------------------------------------------------------------------

1.前言

二哥的脱壳进阶教程第2课里早已有关于以tElock 0.98 -> tE!加壳软件的脱壳方法,今天无意在中国共享
天空(bbs.chinadev.net)看到一种新的脱壳方式,觉得脱法简单易学,对我这个新手来说比较直观简便,也
比较容易接受和掌握。本文可以说模仿其脱壳方法的一个过程,以此献给像我一样的菜鸟做参考,高手则略
过。


2.脱壳过程

OD载入程序,忽略所有异常,再添加以下几个异常C0000005(ACCESS VIOLATION)、C000001D(ILLEGAL
INSTRUCTION)、C000001E(INVALID LOCK SEQUENCE)、C0000096(PRIVILEGED INSTRUCTION)

入口代码:

0040DBD6 N>^\E9 25E4FFFF       jmp NOTEPAD.0040C000
0040DBDB     0000              add byte ptr ds:[eax],al
0040DBDD     00E8              add al,ch
0040DBDF     F6EC              imul ah
0040DBE1     FA                cli
0040DBE2     1E                push ds
0040DBE3     DC00              fadd qword ptr ds:[eax]
0040DBE5     0000              add byte ptr ds:[eax],al
0040DBE7     0000              add byte ptr ds:[eax],al
0040DBE9     0000              add byte ptr ds:[eax],al
0040DBEB     0000              add byte ptr ds:[eax],al

用快捷alt+M 打开内存映射,来到以下的地方:

00400000   00001000   NOTEPAD               PE header          Imag 01001002      R      RWE
00401000   00004000   NOTEPAD    .text      code               Imag 01001002      R      RWE
00405000   00001000   NOTEPAD    .data      data               Imag 01001002      R      RWE
00406000   00001000   NOTEPAD    .idata                        Imag 01001002      R      RWE
00407000   00005000   NOTEPAD    .rsrc      resources          Imag 01001002      R      RWE


在00400000  PEHeader下第一次内存断点,F9运行,shift+F9中断以下代码处:

77F51539     66:8139 4D5A      cmp word ptr ds:[ecx],5A4D-----------中断在这里
77F5153E     75 1D             jnz short ntdll.77F5155D
77F51540     8B51 3C           mov edx,dword ptr ds:[ecx+3C]
77F51543     81FA 00000010     cmp edx,10000000
77F51549     73 12             jnb short ntdll.77F5155D
77F5154B     8D040A            lea eax,dword ptr ds:[edx+ecx]
77F5154E     8945 E4           mov dword ptr ss:[ebp-1C],eax
77F51551     8138 50450000     cmp dword ptr ds:[eax],4550
77F51557     0F85 C00F0200     jnz ntdll.77F7251D
77F5155D     834D FC FF        or dword ptr ss:[ebp-4],FFFFFFFF
77F51561     E8 E8760200       call ntdll.77F78C4E
77F51566     C2 0400           retn 4

再次用快捷alt+M 打开内存映射,再次来到以下的地方:

00400000   00001000   NOTEPAD               PE header          Imag 01001002      R      RWE
00401000   00004000   NOTEPAD    .text      code               Imag 01001002      R      RWE
00405000   00001000   NOTEPAD    .data      data               Imag 01001002      R      RWE
00406000   00001000   NOTEPAD    .idata                        Imag 01001002      R      RWE
00407000   00005000   NOTEPAD    .rsrc      resources          Imag 01001002      R      RWE


这次在00401000 code下第二次内存断点,F9运行,shift+F9中断笔记本oep处:

004010CC     55                push ebp----------断在这里
004010CD     8BEC              mov ebp,esp
004010CF     83EC 44           sub esp,44
004010D2     56                push esi
004010D3     FF15 E4634000     call dword ptr ds:[4063E4]
004010D9     8BF0              mov esi,eax
004010DB     8A00              mov al,byte ptr ds:[eax]
004010DD     3C 22             cmp al,22
004010DF     75 1B             jnz short NOTEPAD.004010FC
004010E1     56                push esi

用OD插件直接将其dump出来,运行ImportREC1.42,填入OEP:10cc,"autosearch", 再"get import",
有无效指针,用level 3 或tElock 0.98插件追踪,发现有4个指针无法修复,将其"cut"掉,然后修复即可。修复后的
程序可正常运行。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

x
PYG19周年生日快乐!

该用户从未签到

发表于 2005-10-10 13:01:12 | 显示全部楼层
看过了 支持下~
PYG19周年生日快乐!
dthexin 该用户已被删除
发表于 2005-10-19 14:07:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
PYG19周年生日快乐!

该用户从未签到

发表于 2006-3-17 20:42:16 | 显示全部楼层
怎么我就不行呢,我晕,我也是一样的做的啊
PYG19周年生日快乐!

该用户从未签到

发表于 2006-3-22 21:01:10 | 显示全部楼层
我也是.第一次中断后就跳到了下面,和楼主说的不一样啊
7C930806     66:8139 4D5A        cmp word ptr ds:[ecx],5A4D
7C93080B     75 1D                      jnz short ntdll.7C93082A
7C93080D     8B51 3C                  mov edx,dword ptr ds:[ecx+3C]
7C930810     81FA 00000010       cmp edx,10000000
7C930816     73 12                       jnb short ntdll.7C93082A
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-4-13 15:40
  • 签到天数: 52 天

    [LV.5]常住居民I

    发表于 2006-5-8 12:04:16 | 显示全部楼层
    宫本就看不懂
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-27 19:17
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2006-5-8 23:50:54 | 显示全部楼层
    此附件依照该脱法不完成,我的是在XP2下。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-5-10 09:26:00 | 显示全部楼层
    第一次: 00407000   00005000   NOTEPAD    .rsrc      resources          Imag 01001002      R      RWE  下内存访问断点
    第二次: 00401000   00004000   NOTEPAD    .text      code               Imag 01001002      R      RWE     下内存访问断点

    这个可以到达OEP,但楼主说的,我也无法到达OEP~~不知道为什么?~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-10 15:32:53 | 显示全部楼层
    呵```老贴都顶上来了```我的两次是这样的
    第一次: 00405000   00001000   NOTEPAD    .data      data               Imag 01001002      R      RWE   下内存访问断点

    修改MAGIC JUMP 后再
    第二次: 00401000   00004000   NOTEPAD    .text      code               Imag 01001002      R      RWE   下内存访问断点

    IAT完整,DUMP
    ------------------------------------
    第一次用这个也可以
    第一次: 00407000   00005000   NOTEPAD    .rsrc      resources          Imag 01001002      R      RWE  下内存访问断点
    只是这样得不到完好的IAT,有点怪
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-5-10 16:11:24 | 显示全部楼层
    原帖由 风球 于 2006-5-10 15:32 发表
    呵```老贴都顶上来了```我的两次是这样的
    第一次: 00405000   00001000   NOTEPAD    .data      data               Imag 01001002      R      RWE   下内存访问断点

    修改MAGIC JUMP 后再
    第二次: 0040100 ...


    呵呵,不明白!那位朋友来做个演示更好!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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