飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3337|回复: 6

[原创] 以前的脱文

[复制链接]
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2006-9-16 11:19:33 | 显示全部楼层 |阅读模式
    破解作者】 coder
    【作者邮箱】 eopenrenwang@163.com
    【作者主页】 www666.ttsite.com
    【使用工具】 od,peid,脑子
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 FTPup
    【软件简介】 猫兄那里拿来的!
    【加壳方式】 穿山甲4.X
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    首先设置一下OD忽略所有,再忽略一个C000001E (INVALID LOCK SEQUENCE)

    载入之后看停在
    00449243 >/$  55            PUSH EBP   壳入口点
    00449244  |.  8BEC          MOV EBP,ESP
    00449246  |.  6A FF         PUSH -1
    00449248  |.  68 402F4700   PUSH NOTEPAD_.00472F40
    0044924D  |.  68 808F4400   PUSH NOTEPAD_.00448F80                   ;  SE 处理程序安装
    00449252  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
    00449258  |.  50            PUSH EAX
    00449259  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP
    00449260  |.  83EC 58       SUB ESP,58
    00449263  |.  53            PUSH EBX
    00449264  |.  56            PUSH ESI
    00449265  |.  57            PUSH EDI
    00449266  |.  8965 E8       MOV DWORD PTR SS:[EBP-18],ESP
    00449269  |.  FF15 88D14600 CALL DWORD PTR DS:[<&KERNEL32.GetVersion>;  kernel32.GetVersion
    0044926F  |.  33D2          XOR EDX,EDX

    我下这个断点
    he GetModuleHandleA+5
    shitf+F9
    然后看堆栈友好提示
    当出现
    00129528  |00BC6DF3  返回到 00BC6DF3 来自 kernel32.GetModuleHandleA
    0012952C  |00BDBC1C  ASCII "kernel32.dll"
    00129530  |00BDCEC4  ASCII "VirtualAlloc"
    00129534  |00BDFA98

    00129528  |00BC6E10  返回到 00BC6E10 来自 kernel32.GetModuleHandleA
    0012952C  |00BDBC1C  ASCII "kernel32.dll"
    00129530  |00BDCEB8  ASCII "VirtualFree"
    时说明马上就到返回时机了!
    再shift+F9
    到这里
    0012928C  |00BB5CE1  返回到 00BB5CE1 来自 kernel32.GetModuleHandleA
    00129290  |001293DC  ASCII "kernel32.dll"
    马上取消断点
    alt+F9 返回
    返回到这里
    00BB5CE1    8B0D AC40BE00   MOV ECX,DWORD PTR DS:[BE40AC]
    00BB5CE7    89040E          MOV DWORD PTR DS:[ESI+ECX],EAX
    00BB5CEA    A1 AC40BE00     MOV EAX,DWORD PTR DS:[BE40AC]
    00BB5CEF    391C06          CMP DWORD PTR DS:[ESI+EAX],EBX
    00BB5CF2    75 16           JNZ SHORT 00BB5D0A
    00BB5CF4    8D85 B4FEFFFF   LEA EAX,DWORD PTR SS:[EBP-14C]
    00BB5CFA    50              PUSH EAX
    00BB5CFB    FF15 BC62BD00   CALL DWORD PTR DS:[BD62BC]               ; kernel32.LoadLibraryA
    00BB5D01    8B0D AC40BE00   MOV ECX,DWORD PTR DS:[BE40AC]
    00BB5D07    89040E          MOV DWORD PTR DS:[ESI+ECX],EAX
    00BB5D0A    A1 AC40BE00     MOV EAX,DWORD PTR DS:[BE40AC]
    00BB5D0F    391C06          CMP DWORD PTR DS:[ESI+EAX],EBX
    00BB5D12    0F84 2F010000   JE 00BB5E47
    00BB5D18    33C9            XOR ECX,ECX
    00BB5D1A    8B07            MOV EAX,DWORD PTR DS:[EDI]
    00BB5D1C    3918            CMP DWORD PTR DS:[EAX],EBX
    00BB5D1E    74 06           JE SHORT 00BB5D26
    00BB5D20    41              INC ECX
    红色的就是magic jump 了
    我把它改成jmp
    之后跟随进入
    到这里
    00BB5E47    83C7 0C         ADD EDI,0C
    00BB5E4A    89BD 78FDFFFF   MOV DWORD PTR SS:[EBP-288],EDI
    00BB5E50    83C6 04         ADD ESI,4
    00BB5E53    395F FC         CMP DWORD PTR DS:[EDI-4],EBX
    00BB5E56  ^ 0F85 49FEFFFF   JNZ 00BB5CA5
    00BB5E5C    EB 03           JMP SHORT 00BB5E61
    00BB5E5E    D6              SALC
    然后在jmp这里下断
    F9 运行到这里
    我们取消断点,然后往上看,到我们刚才的magic jump那里,撤消刚才的修改
    再打开内存映象
    找到第一个code或text 下访问断点。
    现shift + F9
    两次
    马上飞到OEP
    脱之。
    修复
    剪切17个无效指针,抓取之后成功运行,脱壳成功!
    --------------------------------------------------------------------------------
    【破解总结】


    脱壳是为了写加壳做准备!慢慢体会其乐吧!
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-9-16 11:20:08 | 显示全部楼层

    脱文2

    【破解作者】 coder
    【作者邮箱】 eopenrenwang@163.com
    【作者主页】 www666.ttsite.com
    【使用工具】 OD,peid,ResScope,脑子
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 packman.exe
    【下载地址】 不知道
    【软件简介】 以前不知什么时候下载下来的一个压缩壳,昨日整理电脑被我发现,脱他,没想到没有搞定,今日再次脱之,终于搞定。现总结经验以防下次忘记!也做为学习笔记!
    【软件大小】 未查
    【加壳方式】 Upack 0.2x -> Dwing *
    【破解声明】 让我再次遇见你,怒而改版权之!
    --------------------------------------------------------------------------------
    【破解内容】


    首先

    我们先来查壳,养成查壳的好习惯!发现是Upack 0.2x -> Dwing *

    开始有最简单的也是最常用的方法脱之,F8单步向下走,遇向上跳则F4

    不成功!

    其次

    这次好好分析,还是拿出我们的OD载入。来到这里。
    00423733 >  BE 88014000     MOV ESI,Packman.00400188  //壳入口点
    00423738    AD              LODS DWORD PTR DS:[ESI]
    00423739    8BF8            MOV EDI,EAX
    0042373B    95              XCHG EAX,EBP
    0042373C    AD              LODS DWORD PTR DS:[ESI]
    0042373D    91              XCHG EAX,ECX
    0042373E    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
    00423740    AD              LODS DWORD PTR DS:[ESI]
    00423741    B5 1C           MOV CH,1C
    00423743    F3:AB           REP STOS DWORD PTR ES:[EDI]
    00423745    AD              LODS DWORD PTR DS:[ESI]
    00423746    50              PUSH EAX
    00423747    97              XCHG EAX,EDI
    00423748    51              PUSH ECX
    00423749    58              POP EAX
    0042374A    8D5485 5C       LEA EDX,DWORD PTR SS:[EBP+EAX*4+5C]
    0042374E    FF16            CALL DWORD PTR DS:[ESI]
    00423750    72 57           JB SHORT Packman.004237A9
    00423752    2C 03           SUB AL,3
    00423754    73 02           JNB SHORT Packman.00423758
    00423756    B0 00           MOV AL,0
    00423758    3C 07           CMP AL,7
    0042375A    72 02           JB SHORT Packman.0042375E
    0042375C    2C 03           SUB AL,3

    我们Alt+M 打开内存镜像!

    内存映射, 条目 17
    地址=00401000
    大小=0001C000 (114688.)
    属主=Packman  00400000
    区段=.Upack
    包含=代码
    类型=Imag 01001002
    访问=R
    初始访问=RWE

    下内存访问断点或F2
    再F9运行之!
    来到这里:
    00423747    97              XCHG EAX,EDI                             ; Packman.0042A9CC //停在这里
    00423748    51              PUSH ECX
    00423749    58              POP EAX
    0042374A    8D5485 5C       LEA EDX,DWORD PTR SS:[EBP+EAX*4+5C]
    0042374E    FF16            CALL DWORD PTR DS:[ESI]
    00423750    72 57           JB SHORT Packman.004237A9
    00423752    2C 03           SUB AL,3
    00423754    73 02           JNB SHORT Packman.00423758
    00423756    B0 00           MOV AL,0

    F8单步向下
    到这里:
    004238DD  - 0F84 973DFEFF   JE Packman.0040767A
    004238E3    56              PUSH ESI

    我们发现这个跳转很大,跨区段的跳转。有可能就是程序的OEP了!
    我们回车跟入看看!!(昨天就因我没有回车,脱不了他!)
    这时我们来到这里:
    0040767A      FF            DB FF   //来到这里
    0040767B      15            DB 15
    0040767C      00            DB 00
    0040767D      10            DB 10
    0040767E      40            DB 40                                    ;  CHAR '@'
    0040767F      00            DB 00
    00407680      6A            DB 6A                                    ;  CHAR 'j'
    00407681      00            DB 00
    00407682      FF            DB FF
    00407683      15            DB 15

    我们分析一下代码也可以Ctral+A 变成:

    0040767A      FF            DB FF    //来到这里
    0040767B      15            DB 15
    0040767C      00104000      DD Packman.00401000
    00407680      6A            DB 6A                                    ;  CHAR 'j'
    00407681      00            DB 00
    00407682      FF            DB FF
    00407683      15            DB 15
    00407684      44104000      DD Packman.00401044
    00407688      A3            DB A3

    我们脱下试试。

    现在我们用peid查,发现 nothing found 区段为 rsrc
    运行一下。发现报错了。我们修复看看,发现这人地方不是OEP的提示!

    再次
    我们再次载入刚才脱下的程序,这时我们发现代码变成如下代码:
    004238DD >- 0F84 973DFEFF   JE ddd.0040767A
    004238E3    56              PUSH ESI
    004238E4    97              XCHG EAX,EDI
    004238E5    FF53 FC         CALL DWORD PTR DS:[EBX-4]
    004238E8    95              XCHG EAX,EBP
    004238E9    AC              LODS BYTE PTR DS:[ESI]
    004238EA    84C0            TEST AL,AL

    我们F8试试,再次脱下她!
    OEP为:767A
    运行,还是报错!
    为什么,现次修复!
    发现有一指针为假!

    现在我们来剪切掉,抓取修复!

    运行,成功,查壳,发现为 nothing found

    我的妈呀!

    有ResScope载入修改你的版权!!



    完工!


    --------------------------------------------------------------------------------
    【破解总结】


    这次学会了不能只用现成的脱壳方法,要总结及分析代码,运用所学知识多次分析,得到OEP!
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-9-16 11:21:07 | 显示全部楼层

    破文3

    【破解作者】 coder
    【作者邮箱】 eopenrenwang@163.com
    【作者主页】 www666.ttsite.com
    【使用工具】 od,peid,脑子
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 spuerdic.exe
    【下载地址】 附件里
    【软件简介】 一个字典生成器,居然要15元的注册费,像我这样的穷人哪有钱注册,只好破解你了,对不住了!
    【软件大小】 332kb
    【加壳方式】 无壳
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    首先查壳,发现VC编译

    无壳就好办了。点注册选项卡,打入91919191,这可是我的大法哦,次次成功!呵

    点注册,晕!它要重起验证,看看有没有生成什么文件,没有,那就是注册表里了,找啊找
    终于在HKEY_CURRENT_USER\Software\EUsoft\superdic里找出她的!
    删了它!

    OD载入,然后找未注册字样。找到一处,上面还有已注册哦。看来作者还是挺好的。不破她还是过意不去了!

    先来爆破,天热嘛,多爆几个解解火!

    来到这里
    004030F6   .  83D8 FF       SBB EAX,-1
    004030F9      85C0          TEST EAX,EAX
    004030FB      0F85 AB000000 JNZ superdic.004031AC  //跳到未注册
    00403101      8D6C24 2C     LEA EBP,DWORD PTR SS:[ESP+2C]
    00403105      8D86 A4050000 LEA EAX,DWORD PTR DS:[ESI+5A4]
    0040310B      8A10          MOV DL,BYTE PTR DS:[EAX]
    0040310D      8A5D 00       MOV BL,BYTE PTR SS:[EBP]
    00403110      8ACA          MOV CL,DL
    00403112      3AD3          CMP DL,BL
    00403114      75 1E         JNZ SHORT superdic.00403134
    00403116      84C9          TEST CL,CL
    00403118      74 16         JE SHORT superdic.00403130
    0040311A      8A50 01       MOV DL,BYTE PTR DS:[EAX+1]
    0040311D      8A5D 01       MOV BL,BYTE PTR SS:[EBP+1]
    00403120      8ACA          MOV CL,DL
    00403122      3AD3          CMP DL,BL
    00403124      75 0E         JNZ SHORT superdic.00403134
    00403126      83C0 02       ADD EAX,2
    00403129      83C5 02       ADD EBP,2
    0040312C      84C9          TEST CL,CL
    0040312E    ^ 75 DB         JNZ SHORT superdic.0040310B
    00403130      33C0          XOR EAX,EAX
    00403132      EB 05         JMP SHORT superdic.00403139
    00403134      1BC0          SBB EAX,EAX
    00403136      83D8 FF       SBB EAX,-1
    00403139      85C0          TEST EAX,EAX
    0040313B      74 6F         JE SHORT superdic.004031AC  //跳到未注册
    0040313D      8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]
    00403141   .  8BCE          MOV ECX,ESI
    00403143   .  50            PUSH EAX
    00403144   .  68 A1040000   PUSH 4A1
    00403149   .  E8 C8AB0200   CALL superdic.0042DD16

    下面是已注册与未注册代码处:
    0040319B   .  8BC8          MOV ECX,EAX
    0040319D   .  E8 7EAD0200   CALL superdic.0042DF20
    004031A2   .  68 B4214400   PUSH superdic.004421B4       ;  易优软件--超级字典生成器 v3.2 (已注册)
    004031A7   .  E9 0E030000   JMP superdic.004034BA
    004031AC   >  6A 00         PUSH 0
    004031AE   .  68 52040000   PUSH 452
    004031B3   .  8BCE          MOV ECX,ESI
    004031B5   .  E8 04AB0200   CALL superdic.0042DCBE
    004031BA   .  8BC8          MOV ECX,EAX
    004031BC   .  E8 5FAD0200   CALL superdic.0042DF20
    004031C1   .  6A 00         PUSH 0
    004031C3   .  68 9D040000   PUSH 49D
    004031C8   .  8BCE          MOV ECX,ESI
    004031CA   .  E8 EFAA0200   CALL superdic.0042DCBE
    004031CF   .  8BC8          MOV ECX,EAX
    004031D1   .  E8 4AAD0200   CALL superdic.0042DF20
    004031D6   .  6A 00         PUSH 0
    004031D8   .  68 75040000   PUSH 475
    004031DD   .  8BCE          MOV ECX,ESI
    004031DF   .  E8 DAAA0200   CALL superdic.0042DCBE
    004031E4   .  8BC8          MOV ECX,EAX
    004031E6   .  E8 35AD0200   CALL superdic.0042DF20
    004031EB   .  6A 00         PUSH 0

    我们在刚才跳到未注册字样的两处汇编,NOP掉还有早吗?
    好吧,保存运行,成功注册了。
    下面我们来做注册机,先删了注册表的注册项。

    打开我们的KEYMAKE1。7
    选内存注册机,我们找到刚才的注册按纽处,下断,再找到两个跳到未注册的跳传前面下断,运行,断在跳到未
    注册字样的那个断点上,我们再来F8来到这里:

    004030F4   > \1BC0          SBB EAX,EAX  //下断处
    004030F6   .  83D8 FF       SBB EAX,-1
    004030F9      85C0          TEST EAX,EAX
    004030FB      0F85 AB000000 JNZ superdic.004031AC  //跳向未注册,死亡跳
    00403101      8D6C24 2C     LEA EBP,DWORD PTR SS:[ESP+2C]
    00403105      8D86 A4050000 LEA EAX,DWORD PTR DS:[ESI+5A4]
    0040310B      8A10          MOV DL,BYTE PTR DS:[EAX]
    0040310D      8A5D 00       MOV BL,BYTE PTR SS:[EBP]
    00403110      8ACA          MOV CL,DL
    00403112      3AD3          CMP DL,BL
    00403114      75 1E         JNZ SHORT superdic.00403134
    00403116      84C9          TEST CL,CL
    00403118      74 16         JE SHORT superdic.00403130
    0040311A      8A50 01       MOV DL,BYTE PTR DS:[EAX+1]
    0040311D      8A5D 01       MOV BL,BYTE PTR SS:[EBP+1]
    00403120      8ACA          MOV CL,DL
    00403122      3AD3          CMP DL,BL
    00403124      75 0E         JNZ SHORT superdic.00403134
    00403126      83C0 02       ADD EAX,2
    00403129      83C5 02       ADD EBP,2
    0040312C      84C9          TEST CL,CL
    0040312E    ^ 75 DB         JNZ SHORT superdic.0040310B
    00403130      33C0          XOR EAX,EAX
    00403132      EB 05         JMP SHORT superdic.00403139
    00403134      1BC0          SBB EAX,EAX
    00403136      83D8 FF       SBB EAX,-1
    00403139      85C0          TEST EAX,EAX
    0040313B      74 6F         JE SHORT superdic.004031AC  //跳向未注册
    0040313D      8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]
    00403141   .  8BCE          MOV ECX,ESI
    00403143   .  50            PUSH EAX
    00403144   .  68 A1040000   PUSH 4A1
    00403149   .  E8 C8AB0200   CALL superdic.0042DD16
    0040314E   .  6A 00         PUSH 0
    00403150   .  68 A0040000   PUSH 4A0
    00403155   .  8BCE          MOV ECX,ESI

    我们F8来到  004030F9      85C0          TEST EAX,EAX
    这句的意思是把两个EAX的值相比较,然后再执行下一句,跳还是不跳!等就不跳,不等就跳向over

    我们停在这里查看EAX发现其值为-1
    难道这就是注册码?

    不敢相信,我们就打入试试,天那,居然成功了。

    再在KEYMAKE里写入地址

    4030F9
    1
    85
    2
    添加,然后要注意的是,我们这回不是内存方式的。因为我们看不到注册码,可爱的宝贝在寄存器当中呢。

    我们就在寄存器那里点勾,然后选EAX

    生成,测试,成功注册,到此程序已破解成功!拿着内存注册机玩去吧!
    --------------------------------------------------------------------------------
    【破解总结】


    第一次破重起注册成功!没有开注册表监视也没有文件监视就成功了,可怜的作者啊~~!成功的原因是发现了程序的字符串没加密,要不我也搞不定了!运气而已!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-9-16 11:21:58 | 显示全部楼层

    脱文4

    【破解作者】 coder
    【作者邮箱】 eopenrenwang@163.com
    【作者主页】 www666.ttsite.com
    【使用工具】 OD Peid
    【破解平台】 XP
    【软件名称】 加了壳的delphi记事本
    【下载地址】 向我要吧,呵呵
    【软件简介】 没什么好介绍的,开脱吧
    【加壳方式】 EZIP 1.0
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    1.查壳   EZIP 1.0 -> Jonathan Clark [Overlay]

    overlay,不会吧,这样子,还是不要想这么多吧,先试脱!

    2.OD伺候!来到这里

    004980BE > $ /E9 19320000   JMP k_compre.0049B2DC
    004980C3   . |E9 7C2A0000   JMP k_compre.0049AB44
    004980C8   $ |E9 19240000   JMP k_compre.0049A4E6
    004980CD   $ |E9 FF230000   JMP k_compre.0049A4D1
    004980D2   . |E9 1E2E0000   JMP k_compre.0049AEF5
    004980D7   $ |E9 882E0000   JMP k_compre.0049AF64
    004980DC   $ |E9 2C250000   JMP k_compre.0049A60D
    004980E1   $ |E9 AE150000   JMP k_compre.00499694
    004980E6   $ |E9 772B0000   JMP k_compre.0049AC62
    004980EB   $ |E9 87020000   JMP k_compre.00498377
    004980F0   $ |E9 702E0000   JMP k_compre.0049AF65
    004980F5     |CC            INT3
    004980F6     |CC            INT3
    004980F7     |CC            INT3
    004980F8     |CC            INT3
    004980F9     |CC            INT3
    004980FA     |CC            INT3
    004980FB     |CC            INT3

    哇,这么多跳,偶不怕它,嘿嘿!我们先单步跟踪法跟跟看吧。

    F8一步到这里:

    0049B2DC  /> \55            PUSH EBP
    0049B2DD  |.  8BEC          MOV EBP,ESP
    0049B2DF  |.  81EC 28040000 SUB ESP,428
    0049B2E5  |.  53            PUSH EBX
    0049B2E6  |.  56            PUSH ESI
    0049B2E7  |.  57            PUSH EDI
    0049B2E8  |.  8D85 94FCFFFF LEA EAX,DWORD PTR SS:[EBP-36C]
    0049B2EE  |.  50            PUSH EAX
    0049B2EF  |.  E8 FCCDFFFF   CALL k_compre.004980F0
    0049B2F4  |.  59            POP ECX
    0049B2F5  |.  85C0          TEST EAX,EAX
    0049B2F7  |.  75 05         JNZ SHORT k_compre.0049B2FE
    0049B2F9  |.  E9 8C030000   JMP k_compre.0049B68A
    0049B2FE  |>  68 00800000   PUSH 8000

    一直F8,遇近call就F7,可惜这个壳我都用F8就来这到这里了。

    0049B664  |.  8B85 2CFCFFFF MOV EAX,DWORD PTR SS:[EBP-3D4]
    0049B66A  |.  8B40 10       MOV EAX,DWORD PTR DS:[EAX+10]
    0049B66D  |.  8B8D 2CFCFFFF MOV ECX,DWORD PTR SS:[EBP-3D4]
    0049B673  |.  0341 1C       ADD EAX,DWORD PTR DS:[ECX+1C]
    0049B676  |.  8985 38FCFFFF MOV DWORD PTR SS:[EBP-3C8],EAX
    0049B67C  |.  8B85 38FCFFFF MOV EAX,DWORD PTR SS:[EBP-3C8]
    0049B682  |.  5F            POP EDI
    0049B683  |.  5E            POP ESI
    0049B684  |.  5B            POP EBX
    0049B685  |.  8BE5          MOV ESP,EBP
    0049B687  |.  5D            POP EBP
    0049B688  |.- FFE0          JMP EAX                                  ;  k_compre.00479A20

    是不是和开头对应了?我看到的是哦!嘿。再F8,来到这里!

    00479A20    55              PUSH EBP
    00479A21    8BEC            MOV EBP,ESP
    00479A23    83C4 F0         ADD ESP,-10
    00479A26    B8 D0974700     MOV EAX,k_compre.004797D0

    像什么?delphi程序,脱下试试,第一种方式,脱下正常运行,成功!
    --------------------------------------------------------------------------------
    【破解总结】


    简单的壳有利于学习加壳软件的编写,可惜偶看不懂这里汇编代码啊!多多向论坛里的隐居的高手学习了!
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

                                                                     2005,12,10
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-9-16 11:22:32 | 显示全部楼层

    破文5

    【破解作者】 coder
    【作者邮箱】 eopenrenwang@163.com
    【作者主页】 www.chinapyg.com
    【使用工具】 od peid w32无极版 脑子
    【破解平台】 WinXP
    【软件名称】
    【软件简介】 crackme
    【加壳方式】 双壳
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    1。首先查壳为:ASPack 2.12 -> Alexey Solodovnikov 注意看区段,怀疑变形壳
    2。OD载入,两次ESP脱下,查壳发现为UPX壳。再载入,再两次ESP,脱下。查,成功!C++编译!
    3。w32无极版载入,查找字符串,双击,来到
    004015af
    向上看。发现原来只有你输入正确码才会提示成功(那几个单词我看不懂),否功提示出错。
    4。向上找到提示成功的一个地址,随便找一个,OD载入,Ctral+G,来到
    00401545    66:894D EC      MOV WORD PTR SS:[EBP-14],CX
    00401549    6A 0A           PUSH 0A
    0040154B    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
    0040154E    52              PUSH EDX
    0040154F    68 E8030000     PUSH 3E8
    00401554    8B4D E0         MOV ECX,DWORD PTR SS:[EBP-20]
    00401557    E8 A8050000     CALL <JMP.&mfc42.#3098_?GetDlgItemTextA@>
    0040155C    8D45 F4         LEA EAX,DWORD PTR SS:[EBP-C]
    0040155F    50              PUSH EAX
    00401560    FF15 04204000   CALL DWORD PTR DS:[<&kernel32.lstrlen>]  ; kernel32.lstrlenA
    00401566    8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
    00401569    837D F0 01      CMP DWORD PTR SS:[EBP-10],1
    0040156D    73 16           JNB SHORT DCG_Crac.00401585
    0040156F    6A 40           PUSH 40
    00401571    68 2C304000     PUSH DCG_Crac.0040302C                   ; ASCII "CrackMe"
    00401576    68 34304000     PUSH DCG_Crac.00403034                   ; ASCII "Krivo ti nisi Cracker!!!!"
    0040157B    8B4D E0         MOV ECX,DWORD PTR SS:[EBP-20]
    0040157E    E8 7B050000     CALL <JMP.&mfc42.#4224_?MessageBoxA@CWnd>
    00401583    EB 3C           JMP SHORT DCG_Crac.004015C1
    00401585    8D4D E4         LEA ECX,DWORD PTR SS:[EBP-1C]
    00401588    51              PUSH ECX
    00401589    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
    0040158C    52              PUSH EDX
    0040158D    FF15 00204000   CALL DWORD PTR DS:[<&kernel32.lstrcmp>]  ; kernel32.lstrcmpA
    00401593    85C0            TEST EAX,EAX
    00401595    75 16           JNZ SHORT DCG_Crac.004015AD
    00401597    6A 40           PUSH 40
    00401599    68 50304000     PUSH DCG_Crac.00403050                   ; ASCII "CrackMe"
    0040159E    68 58304000     PUSH DCG_Crac.00403058                   ; ASCII "Tocno ti si Cracker"

    在这里下断    0040154E    52              PUSH EDX

    运行之后打入9191919191来到断点。
    F8走,,终于在00401588 出现注册码,马上记下,keymake做出注册机。

    算是完成。
    --------------------------------------------------------------------------------
    【破解总结】


    破解难,脱壳更难,我所会的只有一点点。不足之处请指教!
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2006-9-16 11:23:04 | 显示全部楼层

    脱文6

    【破解作者】 coder
    【作者邮箱】 eopenrenwang@163.com
    【作者主页】 www666.ttsite.com
    【使用工具】 od,peid,脑子
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 仙剑壳
    【下载地址】 无
    【软件简介】 脱吧,还说什么
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    查壳,发现C++编译,区段为XJ

    脱壳,设置OD不忽略所有异常,OD载入。我们来到这里

    00405060 >  55              PUSH EBP
    00405061    8BEC            MOV EBP,ESP
    00405063    6A FF           PUSH -1
    00405065    68 3E1E4000     PUSH 仙剑个人.00401E3E
    0040506A    68 521E4000     PUSH 仙剑个人.00401E52
    0040506F    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]

    shift+F9直到运行为止,记下次数。我这里是6次

    再次载入,这次还是shift+F9这回我们少一次(5次),看堆栈友好提示,我们Ctral+G来到那里。

    00405A7E    55              PUSH EBP
    00405A7F    8BEC            MOV EBP,ESP
    00405A81    57              PUSH EDI
    00405A82    8B45 10         MOV EAX,DWORD PTR SS:[EBP+10]
    00405A85    8BB8 C4000000   MOV EDI,DWORD PTR DS:[EAX+C4]
    00405A8B    FF37            PUSH DWORD PTR DS:[EDI]

    下断点。shift+F9运行之,来到断点。F8我们13次,来到这里
    00405AB0    5F              POP EDI                                  ; 仙剑个人.00402D46
    00405AB1    C9              LEAVE
    00405AB2    C3              RETN
    00405AB3    32C0            XOR AL,AL

    看到什么了。仙剑个人....... Ctral+G快快拿下来吧!

    来到这里

    00402D46    6A 00           PUSH 0
    00402D48    E8 7F020000     CALL 仙剑个人.00402FCC                       ; JMP 到 kernel32.GetModuleHandleA
    00402D4D    A3 00104000     MOV DWORD PTR DS:[401000],EAX
    00402D52    6A 00           PUSH 0
    00402D54    68 6A2D4000     PUSH 仙剑个人.00402D6A
    00402D59    6A 00           PUSH 0
    00402D5B    6A 64           PUSH 64

    记下特征,以备以后我们脱变形壳用。

    用插件脱下即可!
    不用修复,直接成功。
    MASM32 / TASM32


    --------------------------------------------------------------------------------
    【破解总结】


    脱壳要心细,小细节也不可放过。方可成功!最近发现人性有个弱点。这个一有饭吃就不知道自己以前饿过!
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-18 18:59:52 | 显示全部楼层
    牛!支持兄弟!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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