飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10669|回复: 39

[原创] 2800元的韩国大信KD厨房设计软件暴力破解+处理附加数据!

[复制链接]

该用户从未签到

发表于 2009-4-22 00:14:12 | 显示全部楼层 |阅读模式
软件介绍:
   KD橱柜设计软件即KITHENDRAW橱柜设计软件,是一个专业的橱柜展示设计系统,由于它功能强大、操作简洁,成为欧洲最流行的橱柜展示软件,KD操作方便,有无电脑基础者都能在1-2小时内掌握其本操作,桌椅,门窗,油烟机,煤气灶,水槽,各种支架,厨房用品,一应俱全且图像逼真,平面图,立面图,透视图,3d效果图均能在10分钟内一次完成。

   强大的图库与丰富的材质,软件配有视频演示教程与整套的操作教程,学起来非常容易,做橱柜或者衣柜的朋友可以考虑这个软件了。绝对满足您的需要!
   下载:   http://www.kitchendraw.com/
   软件大小:   48.5 MB   
   软件简介:   国外流行的厨房设计软件,搞厨房设计的10个有9个在使用!
   
            
【作者声明】:本文所有涉及的图片和文字都是我亲自设计制作,图片均来自我的网站,请不要怀疑我对PYG的热情,谢谢!由于我是做厨房设计的经常使用这个软件做效果图,只是开了分店,不想要再掏2800买他们的注册码了!附件解压密码是"我的....,需要的请联系,文件太大了!         
【调试环境】:WinXP、OllyDBD、PEiD、LordPE、ImportREC、WinHex

脱壳过程】:
先看看效果吧!







这个是软件的截图:

里面有KitchenDraw4.5.exe和KitchenDraw45.exe,一个用 SoftSentry2.11另外一个用SoftSentry3.0,其实他们的原理都是差不多的!需要说明的是从网上下载的软件没有这两个东西,只有kd.EXE这个文件,在帮助下没有注册的窗口,我拿到的这个 是韩国大信公司中国分公司汉化加壳后的软件,开启后有如下注册框:

相关代码如下:


0040BE90 > $   55             PUSH EBP           //KitchenD.<模块入口点>,OD载入后停在这里
0040BE91     .   8BEC           MOV EBP,ESP
0040BE93     .   83EC 64         SUB ESP,64
0040BE96     .   53             PUSH EBX
0040BE97     .   56             PUSH ESI
0040BE98     .   57             PUSH EDI
0040BE99     .   E9 50000000     JMP KitchenD.0040BEEE

单步走到这里:
0040C052         > \E8 19060000     CALL KitchenD.0040C670
0040C057         >   833D 70114100>CMP DWORD PTR DS:[411170],0
0040C05E         .   0F84 16000000 JE KitchenD.0040C07A
0040C064         .   8B4D B0         MOV ECX,DWORD PTR SS:[EBP-50]
0040C067         .   E8 442C0000     CALL KitchenD.0040ECB0 //出现注册框,选择CANCEL,不然飞了!
0040C06C         .   8945 B0         MOV DWORD PTR SS:[EBP-50],EAX
0040C06F         .   8B4D B0         MOV ECX,DWORD PTR SS:[EBP-50]
0040C072         .   E8 F92C0000     CALL KitchenD.0040ED70
0040C077         .   8945 B0         MOV DWORD PTR SS:[EBP-50],EAX
0040C07A         >   837D B0 01     CMP DWORD PTR SS:[EBP-50],1

单步走到这里:
0040C2D4         . /0F85 3E000000 JNZ KitchenD.0040C318 //这个跳NOP掉,不然飞了!
0040C2DA         . |33C0           XOR EAX,EAX
0040C2DC         . |66:A1 B811410>MOV AX,WORD PTR DS:[4111B8]
0040C2E2         . |85C0           TEST EAX,EAX
0040C2E4         . |0F84 2E000000 JE KitchenD.0040C318   //这个跳NOP掉,不然飞了!
0040C2EA         . |8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
0040C2ED         . |50             PUSH EAX                                   ; /hInst
0040C2EE         . |68 A8114100     PUSH KitchenD.004111A8                     ; |Class =
0040C2F3         . |FF15 18544100 CALL DWORD PTR DS:[<&USER32.UnregisterCl>; \UnregisterClassA
0040C2F9         . |33C0           XOR EAX,EAX
0040C2FB         . |66:A1 BC11410>MOV AX,WORD PTR DS:[4111BC]
0040C301         . |85C0           TEST EAX,EAX
0040C303         . |0F84 0F000000 JE KitchenD.0040C318
0040C309         . |8B45 B4         MOV EAX,DWORD PTR SS:[EBP-4C]
0040C30C         . |50             PUSH EAX
0040C30D         . |8D55 AC         LEA EDX,DWORD PTR SS:[EBP-54]
0040C310         . |8B4D B8         MOV ECX,DWORD PTR SS:[EBP-48]
0040C313         . |E8 38000000     CALL KitchenD.0040C350   //这个CALL进去,不然不能到OEP!
0040C318         > \837D AC 00     CMP DWORD PTR SS:[EBP-54],0

上面的NOP掉的代码走过之后要撤消修改,不然修复后有很多错误提示(已经有很多了!哈哈!)
我们单步走到这里:
0040C350         /$   56             PUSH ESI   //进0040C313后的代码!
0040C351         |.   57             PUSH EDI
0040C352         |.   8BF2           MOV ESI,EDX
0040C354         |.   8B7C24 0C       MOV EDI,DWORD PTR SS:[ESP+C]
0040C358         |.   8B51 02         MOV EDX,DWORD PTR DS:[ECX+2]
0040C35B         |.   3351 06         XOR EDX,DWORD PTR DS:[ECX+6]
0040C35E         |.   3351 0A         XOR EDX,DWORD PTR DS:[ECX+A]
0040C361         |.   03FA           ADD EDI,EDX
0040C363         |.   33D2           XOR EDX,EDX
0040C365         |>   8B41 06         /MOV EAX,DWORD PTR DS:[ECX+6]
0040C368         |.   42             |INC EDX
0040C369         |.   314497 FC       |XOR DWORD PTR DS:[EDI+EDX*4-4],EAX
0040C36D         |.   42             |INC EDX
0040C36E         |.   8B41 0A         |MOV EAX,DWORD PTR DS:[ECX+A]
0040C371         |.   314497 FC       |XOR DWORD PTR DS:[EDI+EDX*4-4],EAX
0040C375         |.   83FA 14         |CMP EDX,14
0040C378         |.^ 7C EB           \JL SHORT KitchenD.0040C365
0040C37A         |.   8B0E           MOV ECX,DWORD PTR DS:[ESI]//F4运行到所选!
0040C37C         |.   E8 5F320000     CALL KitchenD.0040F5E0
我们单步走到这里:
0040C387         |.   66:833D B8114>CMP WORD PTR DS:[4111B8],0
0040C38F         |.   74 0C           JE SHORT KitchenD.0040C39D   //这个跳NOP掉,不然飞了!
0040C391         |.   66:833D C0114>CMP WORD PTR DS:[4111C0],0
0040C399         |.   74 02           JE SHORT KitchenD.0040C39D
0040C39B         |.   FFD7           CALL EDI                     //这个CALL进去,不然不能到OEP!
0040C39D         |>   6A 00           PUSH 0                                     ; /Style =
0040C39F         |.   68 38124100     PUSH KitchenD.00411238                     ; |Title = "softSENTRY"
0040C3A4         |.   68 28124100     PUSH KitchenD.00411228                     ; |Text = "Failed to
0040C3A9         |.   6A 00           PUSH 0                                     ; |hOwner = NULL
0040C3AB         |.   FF15 48544100 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
进去后的代码:

004018A0             55             DB 55                                     ;   CHAR 'U'
004018A1             8B             DB 8B
004018A2             EC             DB EC
004018A3             6A             DB 6A                                     ;   CHAR 'j'
004018A4             FF             DB FF
004018A5             68             DB 68                                     ;   CHAR 'h'
004018A6             D0             DB D0
004018A7             50             DB 50                                     ;   CHAR 'P'
004018A8             40             DB 40                                     ;   CHAR '@'
004018A9             00             DB 00
004018AA             68             DB 68                                     ;   CHAR 'h'
004018AB             D4             DB D4
004018AC             23             DB 23                                     ;   CHAR '#'
004018AD             40             DB 40                                     ;   CHAR '@'
004018AE             00             DB 00
004018AF             64             DB 64                                     ;   CHAR 'd'

分析后的代码:
004018A0         /.   55             PUSH EBP         //这里就是OEP。
004018A1         |.   8BEC           MOV EBP,ESP
004018A3         |.   6A FF           PUSH -1
004018A5         |.   68 D0504000     PUSH KitchenD.004050D0
004018AA         |.   68 D4234000     PUSH KitchenD.004023D4                     ;   SE 处理程序安装
004018AF         |.   64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
004018B5         |.   50             PUSH EAX
004018B6         |.   64:8925 00000>MOV DWORD PTR FS:[0],ESP
004018BD         |.   83EC 58         SUB ESP,58
004018C0         |.   53             PUSH EBX
004018C1         |.   56             PUSH ESI
004018C2         |.   57             PUSH EDI
004018C3         |.   8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
004018C6         |.   FF15 48504000 CALL DWORD PTR DS:[<&KERNEL32.GetVersion>;   kernel32.GetVersion
004018CC         |.   33D2           XOR EDX,EDX
004018CE         |.   8AD4           MOV DL,AH
004018D0         |.   8915 D0674000 MOV DWORD PTR DS:[4067D0],EDX
004018D6         |.   8BC8           MOV ECX,EAX
004018D8         |.   81E1 FF000000 AND ECX,0FF

原程序用PIED查壳是BC++的(图3),脱壳后的程序是VC++的(图4)难道这个程序有欺骗PIED的功能还是我脱壳后的文件有问题?

我们运行软件看到一个错误的提示:Error while creating Process!我们查找字串参考,可以看到有12个错误之多,如果没有NOP掉的代码走过之后撤消修改,错误将更多。

00401009     PUSH dumped_.0040603C                       :(
004011C4     PUSH dumped_.0040615C                       Couldn't find my data section !
00401216     MOV EDI,dumped_.00406130                     wasn't found in the current directory !
0040128E     MOV EDI,dumped_.00406620                   D
004012B5     PUSH dumped_.00406620                       D
004012DC     PUSH dumped_.00406110                       Error while creating Process !
00401714     PUSH dumped_.004060E4                       Error while mapping the target file (S&R) !
0040172F     PUSH dumped_.004060E4                       Error while mapping the target file (S&R) !
00401753     PUSH dumped_.004060E4                       Error while mapping the target file (S&R) !
0040177F     PUSH dumped_.004060C4                       Error - invalid PE file (S&R) !
004017A7     PUSH dumped_.004060C4                       Error - invalid PE file (S&R) !
004017CE     PUSH dumped_.00406094                       Error while writing into the Process Memory !
004017F6     PUSH dumped_.0040607C                       Wrong version (S&R) !
00401811     PUSH dumped_.00406050                       Error while reading the Process Memory !
0040182C     PUSH dumped_.00406040                       Wrong version !
00401847     PUSH dumped_.00406094                       Error while writing into the Process Memory !
00401D8D     MOV ESI,dumped_.00406808                   C:\kd\dumped_.exe
00402562     PUSH dumped_.004053B4                       <program name unknown>
004025A4     PUSH dumped_.004053B0                       ...
004025B8     PUSH dumped_.00405394                       Runtime Error!\n\nProgram:
004025D6     PUSH dumped_.00405390                       \n\n
004025FE     PUSH dumped_.00405368                       Microsoft Visual C++ Runtime Library
0040279D     MOV EDI,dumped_.00406970                   粒冢
004027EB     MOV EDI,dumped_.00406970                   粒冢
004028A0     MOV EDI,dumped_.00406970                   粒冢
0040380B     PUSH dumped_.004053FC                       user32.dll
00403822     PUSH dumped_.004053F0                       MessageBoxA
00403833     PUSH dumped_.004053E0                       GetActiveWindow
0040383B     PUSH dumped_.004053CC                       GetLastActivePopup

到底那里出了问题呢?这个也让我头痛了很久。我想到了:
我们在看原程序的时候用PIED查壳是BC++的但是有附加数据 [Overlay],我们处理下看看:

1.打开原程序拉到最后,然后上翻,到代码全是000的地方,一定要慢慢翻,因为代码太多,
右键点代码是000后的第一个数字选快开始,然后到代码的最后选快结束。然后选编辑,复制,标准
如图5:

2.打开脱壳后的程序。拉到代码最后一个字节,右键点

保存后我们运行,OK!!!!!!!!!!!


该软件有时间限制,试用是30,每新建一个工程就要减掉0.05,但是打开破解后的软件这个时间就不会动了!

我们脱壳后竟然爆破了!我有这么好的运气吗?不信???????


     于是就继续试用看看时间会不会改变,但是它一直没有变化!~~哈哈!!!难道上天也在帮助我让我继续走下去????
     看看软件界面:


看到了吧!还是显示29.50!


[ 本帖最后由 y2008 于 2009-8-18 23:05 编辑 ]

kitchendraw 4.5.rar

554 Bytes, 下载次数: 75, 下载积分: 飘云币 -2 枚

售价: 20 枚飘云币  [记录]

行业软件

评分

参与人数 1威望 +40 飘云币 +80 收起 理由
Nisy + 40 + 80 PYG有你更精彩!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2009-4-22 00:18:06 | 显示全部楼层
太专业了,真是想不到。
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2009-4-22 00:31:34 | 显示全部楼层
谢谢!你的支持!
PYG19周年生日快乐!

该用户从未签到

发表于 2009-4-22 00:59:45 | 显示全部楼层
感谢楼主,提供专业的工具,强顶
PYG19周年生日快乐!

该用户从未签到

发表于 2009-4-22 08:46:07 | 显示全部楼层
附件密码倒是很容易猜可是什么东西也没有呀!
PYG19周年生日快乐!

该用户从未签到

发表于 2009-4-22 09:01:12 | 显示全部楼层
呵呵!是啊!是不是和楼主兄弟 用QQ传啊?
PYG19周年生日快乐!

该用户从未签到

发表于 2009-4-22 09:10:51 | 显示全部楼层
强 最后那些可能是附加数据 ~
PYG19周年生日快乐!
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 1678 天

    [LV.Master]伴坛终老

    发表于 2009-4-22 09:12:10 | 显示全部楼层
    多谢和支持y2008楼主的详细分析,只是没有原版下载,希望楼主也能提供原版分享。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-4-22 13:46:06 | 显示全部楼层
    没有原版下载,希望楼主也能提供原版分享
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-4-22 15:40:54 | 显示全部楼层
    不错!太强了!!/:014
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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