飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4809|回复: 11

帮网页特效咖啡豆(作业7里的程序)脱衣服

[复制链接]
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-3-27 09:29:59 | 显示全部楼层 |阅读模式
    【标      题】帮网页特效咖啡豆脱衣服(脱壳)
    【下载  地址】PYG的FTP里有
    【脱衣服工具】OD,PEiD
    【衣服  类型】ASPack 2.1 -> Alexey Solodovnikov
    【任      务】把衣服脱掉(找到OEP,然后DUMP,修复输入表!)
    【脱衣服作者】crazysky
    【脱衣服声明】我只是个小菜鸟,不好之处多多包涵!
    【备      注】老手勿看!
    【脱衣服过程】
    在脱之前先说一下,脱衣服时程序里面会有有好多循环,
    对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。(请记住!)

    用OD载入TheEndTx.exe,忽略所有异常(提示是否继续分析,选择"否" )
    得到代码如下:

    00622001 T>  60                  pushad                               ;按F8
    00622002     E8 72050000         call TheEndTx.00622579                        ;F8
    00622007     EB 33               jmp short TheEndTx.0062203C        ;跳F8
    00622009     87DB                xchg ebx,ebx
    0062200B     90                  nop
    0062200C     00A0 4A0010A0       add byte ptr ds:[eax+A010004A],ah
    00622012     4A                  dec edx
    00622013     000C67              add byte ptr ds:[edi],cl


    0062203C     BB 3C394400         mov ebx,TheEndTx.0044393C                ;跳在这里,下面一直按F8
    00622041     03DD                add ebx,ebp
    00622043     2B9D 60394400       sub ebx,dword ptr ss:[ebp+443960]
    00622049     83BD 98474400 00    cmp dword ptr ss:[ebp+444798],0
    00622050     899D 98474400       mov dword ptr ss:[ebp+444798],ebx
    00622056     0F85 81040000       jnz TheEndTx.006224DD
    0062205C     8D85 A0474400       lea eax,dword ptr ss:[ebp+4447A0]
    00622062     50                  push eax
    00622063     FF95 AC484400       call dword ptr ss:[ebp+4448AC]
    00622069     8985 9C474400       mov dword ptr ss:[ebp+44479C],eax
    0062206F     8BF8                mov edi,eax
    00622071     8D9D AD474400       lea ebx,dword ptr ss:[ebp+4447AD]
    00622077     53                  push ebx
    00622078     50                  push eax
    00622079     FF95 A8484400       call dword ptr ss:[ebp+4448A8]
    0062207F     8985 F5394400       mov dword ptr ss:[ebp+4439F5],eax
    00622085     8D9D BA474400       lea ebx,dword ptr ss:[ebp+4447BA]
    0062208B     53                  push ebx
    0062208C     57                  push edi
    0062208D     FF95 A8484400       call dword ptr ss:[ebp+4448A8]
    00622093     8985 F9394400       mov dword ptr ss:[ebp+4439F9],eax
    00622099     8D85 0A3B4400       lea eax,dword ptr ss:[ebp+443B0A]
    0062209F     FFE0                jmp eax                               ; 在这里跳,F8
    006220A1     0000                add byte ptr ds:[eax],al


    006221CE     8B9D 6C394400       mov ebx,dword ptr ss:[ebp+44396C]                ;跳在这里,
    006221D4     0BDB                or ebx,ebx
    006221D6     74 0A               je short TheEndTx.006221E2                                ;这里跳
    006221D8     8B03                mov eax,dword ptr ds:[ebx]
    006221DA     8785 70394400       xchg dword ptr ss:[ebp+443970],eax
    006221E0     8903                mov dword ptr ds:[ebx],eax
    006221E2     8DB5 1A3A4400       lea esi,dword ptr ss:[ebp+443A1A]                ;跳到这里,下面一直按F8
    006221E8     833E 00             cmp dword ptr ds:[esi],0
    006221EB     0F84 1F010000       je TheEndTx.00622310
    006221F1     8DB5 1A3A4400       lea esi,dword ptr ss:[ebp+443A1A]
    006221F7     6A 04               push 4
    006221F9     68 00100000         push 1000
    006221FE     68 00180000         push 1800
    00622203     6A 00               push 0
    00622205     FF95 F5394400       call dword ptr ss:[ebp+4439F5]
    0062220B     8985 F1394400       mov dword ptr ss:[ebp+4439F1],eax
    00622211     8B46 04             mov eax,dword ptr ds:[esi+4]
    00622214     05 0E010000         add eax,10E
    00622219     6A 04               push 4
    0062221B     68 00100000         push 1000
    00622220     50                  push eax
    00622221     6A 00               push 0
    00622223     FF95 F5394400       call dword ptr ss:[ebp+4439F5]
    00622229     8985 ED394400       mov dword ptr ss:[ebp+4439ED],eax
    0062222F     56                  push esi
    00622230     8B1E                mov ebx,dword ptr ds:[esi]
    00622232     039D 98474400       add ebx,dword ptr ss:[ebp+444798]
    00622238     FFB5 F1394400       push dword ptr ss:[ebp+4439F1]
    0062223E     FF76 04             push dword ptr ds:[esi+4]
    00622241     50                  push eax
    00622242     53                  push ebx
    00622243     E8 3B030000         call TheEndTx.00622583
    00622248     80BD 0D3A4400 00    cmp byte ptr ss:[ebp+443A0D],0
    0062224F     75 5E               jnz short TheEndTx.006222AF
    00622251     FE85 0D3A4400       inc byte ptr ss:[ebp+443A0D]
    00622257     8B3E                mov edi,dword ptr ds:[esi]
    00622259     03BD 98474400       add edi,dword ptr ss:[ebp+444798]
    0062225F     FF37                push dword ptr ds:[edi]
    00622261     C607 C3             mov byte ptr ds:[edi],0C3
    00622264     FFD7                call edi
    00622266     8F07                pop dword ptr ds:[edi]
    00622268     50                  push eax
    00622269     51                  push ecx
    0062226A     56                  push esi
    0062226B     53                  push ebx
    0062226C     8BC8                mov ecx,eax
    0062226E     83E9 06             sub ecx,6
    00622271     8BB5 ED394400       mov esi,dword ptr ss:[ebp+4439ED]
    00622277     33DB                xor ebx,ebx
    00622279     0BC9                or ecx,ecx
    0062227B     74 2E               je short TheEndTx.006222AB
    0062227D     78 2C               js short TheEndTx.006222AB
    0062227F     AC                  lods byte ptr ds:[esi]
    00622280     3C E8               cmp al,0E8
    00622282     74 0A               je short TheEndTx.0062228E
    00622284     EB 00               jmp short TheEndTx.00622286                                ;在这里跳
    00622286     3C E9               cmp al,0E9                                                                        ;跳到这里
    00622288     74 04               je short TheEndTx.0062228E
    0062228A     43                  inc ebx
    0062228B     49                  dec ecx
    0062228C   ^ EB EB               jmp short TheEndTx.00622279                                ;到了这里,这个会跳回去的(不要按F8),在下一条指令点一下鼠标
    0062228E     8B06                mov eax,dword ptr ds:[esi]                                        ;在这里,按F4,
    00622290     EB 00               jmp short TheEndTx.00622292                                ;这里要跳,F8
    00622292     803E 19             cmp byte ptr ds:[esi],19                                        ;跳到这里
    00622295   ^ 75 F3               jnz short TheEndTx.0062228A                                ;这个往回跳的,在下一条指令上按F4
    00622297     24 00               and al,0                                                                        ;也就是在这里按F4
    00622299     C1C0 18             rol eax,18
    0062229C     2BC3                sub eax,ebx
    0062229E     8906                mov dword ptr ds:[esi],eax
    006222A0     83C3 05             add ebx,5
    006222A3     83C6 04             add esi,4
    006222A6     83E9 05             sub ecx,5
    006222A9   ^ EB CE               jmp short TheEndTx.00622279                                ;这里也是跳回去的
    006222AB     5B                  pop ebx                                                                        ;在这里按F4
    006222AC     5E                  pop esi
    006222AD     59                  pop ecx
    006222AE     58                  pop eax
    006222AF     8BC8                mov ecx,eax
    006222B1     8B3E                mov edi,dword ptr ds:[esi]
    006222B3     03BD 98474400       add edi,dword ptr ss:[ebp+444798]
    006222B9     8BB5 ED394400       mov esi,dword ptr ss:[ebp+4439ED]
    006222BF     C1F9 02             sar ecx,2
    006222C2     F3:A5               rep movs dword ptr es:[edi],dword ptr>
    006222C4     8BC8                mov ecx,eax
    006222C6     83E1 03             and ecx,3
    006222C9     F3:A4               rep movs byte ptr es:[edi],byte ptr d>
    006222CB     5E                  pop esi
    006222CC     68 00800000         push 8000
    006222D1     6A 00               push 0
    006222D3     FFB5 ED394400       push dword ptr ss:[ebp+4439ED]
    006222D9     FF95 F9394400       call dword ptr ss:[ebp+4439F9]
    006222DF     83C6 08             add esi,8
    006222E2     833E 00             cmp dword ptr ds:[esi],0
    006222E5   ^ 0F85 26FFFFFF       jnz TheEndTx.00622211                                                        ;这里会跳回去的
    006222EB     68 00800000         push 8000                                                                                ;在这里按F4
    006222F0     6A 00               push 0
    006222F2     FFB5 F1394400       push dword ptr ss:[ebp+4439F1]
    006222F8     FF95 F9394400       call dword ptr ss:[ebp+4439F9]
    006222FE     8B9D 6C394400       mov ebx,dword ptr ss:[ebp+44396C]
    00622304     0BDB                or ebx,ebx
    00622306     74 08               je short TheEndTx.00622310                                                ;这里跳到下面
    00622308     8B03                mov eax,dword ptr ds:[ebx]
    0062230A     8785 70394400       xchg dword ptr ss:[ebp+443970],eax
    00622310     8B95 98474400       mov edx,dword ptr ss:[ebp+444798]                                ;跳到这里
    00622316     8B85 64394400       mov eax,dword ptr ss:[ebp+443964]
    0062231C     2BD0                sub edx,eax
    0062231E     74 79               je short TheEndTx.00622399                                                ;向下跳(F8跳)
    00622320     8BC2                mov eax,edx
    00622322     C1E8 10             shr eax,10

    (还没完的,在下一楼里!唉!系统不给一次贴出来,限制在10000字节!)

    [ Last edited by crazysky on 2005-3-27 at 02:17 PM ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2005-3-27 09:31:26 | 显示全部楼层
    00622399     8B95 98474400       mov edx,dword ptr ss:[ebp+444798]                                ;跳到这里
    0062239F     8BB5 E1394400       mov esi,dword ptr ss:[ebp+4439E1]
    006223A5     0BF6                or esi,esi
    006223A7     74 11               je short TheEndTx.006223BA                                                ;向下跳
    006223A9     03F2                add esi,edx
    006223AB     AD                  lods dword ptr ds:[esi]
    006223AC     0BC0                or eax,eax
    006223AE     74 0A               je short TheEndTx.006223BA
    006223B0     03C2                add eax,edx
    006223B2     8BF8                mov edi,eax
    006223B4     66:AD               lods word ptr ds:[esi]
    006223B6     66:AB               stos word ptr es:[edi]
    006223B8   ^ EB F1               jmp short TheEndTx.006223AB
    006223BA     8BB5 68394400       mov esi,dword ptr ss:[ebp+443968]                                ;跳到这里
    006223C0     8B95 98474400       mov edx,dword ptr ss:[ebp+444798]
    006223C6     03F2                add esi,edx
    006223C8     8B46 0C             mov eax,dword ptr ds:[esi+C]
    006223CB     85C0                test eax,eax
    006223CD     0F84 0A010000       je TheEndTx.006224DD
    006223D3     03C2                add eax,edx
    006223D5     8BD8                mov ebx,eax
    006223D7     50                  push eax
    006223D8     FF95 AC484400       call dword ptr ss:[ebp+4448AC]
    006223DE     85C0                test eax,eax
    006223E0     75 07               jnz short TheEndTx.006223E9                                        ;向下跳
    006223E2     53                  push ebx
    006223E3     FF95 B0484400       call dword ptr ss:[ebp+4448B0]
    006223E9     8985 E5394400       mov dword ptr ss:[ebp+4439E5],eax                                ;到这里
    006223EF     C785 E9394400 00000>mov dword ptr ss:[ebp+4439E9],0
    006223F9     8B95 98474400       mov edx,dword ptr ss:[ebp+444798]
    006223FF     8B06                mov eax,dword ptr ds:[esi]
    00622401     85C0                test eax,eax
    00622403     75 03               jnz short TheEndTx.00622408
    00622405     8B46 10             mov eax,dword ptr ds:[esi+10]
    00622408     03C2                add eax,edx
    0062240A     0385 E9394400       add eax,dword ptr ss:[ebp+4439E9]
    00622410     8B18                mov ebx,dword ptr ds:[eax]
    00622412     8B7E 10             mov edi,dword ptr ds:[esi+10]
    00622415     03FA                add edi,edx
    00622417     03BD E9394400       add edi,dword ptr ss:[ebp+4439E9]
    0062241D     85DB                test ebx,ebx
    0062241F     0F84 A2000000       je TheEndTx.006224C7
    00622425     F7C3 00000080       test ebx,80000000
    0062242B     75 04               jnz short TheEndTx.00622431
    0062242D     03DA                add ebx,edx
    0062242F     43                  inc ebx
    00622430     43                  inc ebx
    00622431     53                  push ebx
    00622432     81E3 FFFFFF7F       and ebx,7FFFFFFF
    00622438     53                  push ebx
    00622439     FFB5 E5394400       push dword ptr ss:[ebp+4439E5]
    0062243F     FF95 A8484400       call dword ptr ss:[ebp+4448A8]
    00622445     85C0                test eax,eax
    00622447     5B                  pop ebx
    00622448     75 6F               jnz short TheEndTx.006224B9                                        ;向下跳
    0062244A     F7C3 00000080       test ebx,80000000


    006224B9     8907                mov dword ptr ds:[edi],eax                                    ;跳到这里
    006224BB     8385 E9394400 04    add dword ptr ss:[ebp+4439E9],4
    006224C2   ^ E9 32FFFFFF         jmp TheEndTx.006223F9                                                        ;这个往回跳到
    006224C7     8906                mov dword ptr ds:[esi],eax                                                ;在这里按F4
    006224C9     8946 0C             mov dword ptr ds:[esi+C],eax
    006224CC     8946 10             mov dword ptr ds:[esi+10],eax
    006224CF     83C6 14             add esi,14
    006224D2     8B95 98474400       mov edx,dword ptr ss:[ebp+444798]
    006224D8   ^ E9 EBFEFFFF         jmp TheEndTx.006223C8                                                        ;这个也是往回跳的
    006224DD     8B85 0E3A4400       mov eax,dword ptr ss:[ebp+443A0E]                                ;在这里按F4
    006224E3     50                  push eax
    006224E4     0385 98474400       add eax,dword ptr ss:[ebp+444798]
    006224EA     59                  pop ecx
    006224EB     0BC9                or ecx,ecx
    006224ED     8985 3B3E4400       mov dword ptr ss:[ebp+443E3B],eax
    006224F3     61                  popad                                                                                        ;看到这个popad(与开始的pushad对应)了吗?这表示跳转到EOP的指令就在附近了
    006224F4     75 08               jnz short TheEndTx.006224FE                                        ;向下跳
    006224F6     B8 01000000         mov eax,1
    006224FB     C2 0C00             retn 0C
    006224FE     68 1C374A00         push TheEndTx.004A371C                                                        ;到这里
    00622503     C3                  retn                                                                                        ;这个是返回到EOP的
    00622504     8B85 9C474400       mov eax,dword ptr ss:[ebp+44479C]




    004A371C     55                  push ebp                                                                ;跳到这里,这就EOP了(经过了popad而且地址由上面的00622503跳到004A371C,经过了段跨越)
    004A371D     8BEC                mov ebp,esp
    004A371F     83C4 F0             add esp,-10
    004A3722     53                  push ebx
    004A3723     B8 74344A00         mov eax,TheEndTx.004A3474
    004A3728     E8 1B31F6FF         call TheEndTx.00406848
    004A372D     8B1D AC5B4A00       mov ebx,dword ptr ds:[4A5BAC]         ; TheEndTx.004A6C30
    004A3733     8B03                mov eax,dword ptr ds:[ebx]
    004A3735     E8 D260FBFF         call TheEndTx.0045980C
    004A373A     8B03                mov eax,dword ptr ds:[ebx]
    004A373C     83C0 50             add eax,50
    004A373F     BA F0374A00         mov edx,TheEndTx.004A37F0             ; ASCII "help.htm"
    004A3744     E8 0F0DF6FF         call TheEndTx.00404458
    004A3749     8B03                mov eax,dword ptr ds:[ebx]
    004A374B     BA 04384A00         mov edx,TheEndTx.004A3804



    然后就是将程序DUMP出来了,右击鼠标->选择脱壳在当前的调试进程->按脱壳,写一个名字(我写了dmup.exe)然后保存,完成!
    dump.exe就是脱了壳的程序了,运行一下,可以了,没问题!用PEiD查一查是:Borland Delphi 6.0 - 7.0,表示是没加壳了,是用Delphi写的程序!


    【脱衣服心得】
        我学脱衣服才几天,其实也不是很会的!但这件衣服其实也不难脱的!
    我大概是看了二哥的脱文才会的吧?二哥在他的脱文上经常说:"手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。
    对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。不要用Peid查入口,单步跟踪,提高手动找入口能力。"
    二哥又说一般接近EOP时,都会有一个JMP或者RET这些指令跳到EOP的!而这个跳转一般是经过程序段跨越的!

        我只是个菜鸟,大家不要笑我哦!^○^
                                                                                                                                                                                                            crazysky
                                                                                                                                                                                                        2005-3-27
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    4 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-3-27 09:58:13 | 显示全部楼层

    注意:

    00622002     E8 72050000         call TheEndTx.00622579               ;F8

    这里要按F7,否则程序会运行起来!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2005-3-27 10:37:11 | 显示全部楼层
    Originally posted by 飘云 at 2005-3-27 09:58 AM:
    00622002     E8 72050000         call TheEndTx.00622579               ;F8

    这里要按F7,否则程序会运行起来!


    我按F8可以过啊!程序也没有运行起来啊!
    怎么会这样的呢?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-12-22 19:44
  • 签到天数: 44 天

    [LV.5]常住居民I

    发表于 2005-3-27 14:14:21 | 显示全部楼层
    555555555,被骗了,偶被"脱衣服"给骗了~大骗子~KC~




    这个不是近call可以f8吧?
    我记得如果是近call的话就f7 啊,变了形的嘛~~~`
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    4 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-3-27 15:04:52 | 显示全部楼层
    这个不是近call可以f8吧?
    我记得如果是近call的话就f7 啊,变了形的嘛~~~`



    理论上是这样的,但是我的按F8就运行起来了!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-3-21 21:06
  • 签到天数: 1489 天

    [LV.10]以坛为家III

    发表于 2005-4-9 21:55:04 | 显示全部楼层
    "手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。
    对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。不要用Peid查入口,单步跟踪,提高手动找入口能力。"

    我说这句话怎么看起来眼熟呢!原来是二哥的常用语!
    支持,不错的脱文,简单易懂。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-23 13:23:55 | 显示全部楼层
    简单易懂
    支持一下
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-5-9 09:34:55 | 显示全部楼层
    仔细研究研究
    PYG19周年生日快乐!
    filandcome 该用户已被删除
    发表于 2005-6-24 08:32:34 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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