| 软件名称: Publish-iT v2.4b -超级印刷工厂
软件语言: 英文 界面预览: 软件类型: 精品软件 / 图形处理 / 图像处理 运行环境: WinXP, Win2000, WinME 授权方式: 软件大小: 1.62 MB 软件等级: 整理时间: 2003-4-4 开 发 商:
软件简介 这程序能帮助你制作专业级的报纸、宣传册、广告单等等出版品,它结合了文书处理器、图形编辑软件、以及所有排版软体的优点于一身。你可以轻易的编排你的文字,加入任意的图片。「主页」的功能能让你的出版品有着一致性的外观。
下载地址: http://www.ttdown.com/SoftView_3663.ht
【破解工具】:Ollydbg1.09 中文版 【过 程】:
呵呵,我们开工吧!唉!^-^我的水平很低,许多地方表达的有问题,烦请各位指教! 用ollydbg加载运行 ,在注册框中填注册试验码:789456 (软件提示只要5~6位数字)后下 bpx GetDlgItemTextA 后按OK键后不久就能来到这里:
00453AF4 CALL DWORD PTR DS:[<&USER32.GetDlgIt>
; \GetDlgItemTextA <---断点
00453AFA PUSH Publish.00495BD0 ; ASCII "FARKEL" 00453AFF LEA EAX, [LOCAL.20] ; EAX<--0012E47C,(ASCII "789456") 00453B02 PUSH EAX 00453B03 CALL Publish.0047CB30 <---是否是死亡注册码 "FARKEL"
F8 -----------> | 0047CB30 MOV EDX, DWORD PTR SS:[ESP+4]
; EDX<--0012E47C,(ASCII "789456")
0047CB34 MOV ECX, DWORD PTR SS:[ESP+8] ; 00495BD0 ASCII "FARKEL" 0047CB38 TEST EDX, 3 0047CB3E JNZ SHORT Publish.0047CB7C 0047CB40 /MOV EAX, DWORD PTR DS:[EDX] 0047CB42 |CMP AL, BYTE PTR DS:[ECX] 0047CB44 |JNZ SHORT Publish.0047CB74 0047CB46 |OR AL, AL 0047CB48 |JE SHORT Publish.0047CB70 0047CB4A |CMP AH, BYTE PTR DS:[ECX+1] 0047CB4D |JNZ SHORT Publish.0047CB74 0047CB4F |OR AH, AH 0047CB51 |JE SHORT Publish.0047CB70 0047CB53 |SHR EAX, 10 0047CB56 |CMP AL, BYTE PTR DS:[ECX+2] 0047CB59 |JNZ SHORT Publish.0047CB74 0047CB5B |OR AL, AL 0047CB5D |JE SHORT Publish.0047CB70 0047CB5F |CMP AH, BYTE PTR DS:[ECX+3] 0047CB62 |JNZ SHORT Publish.0047CB74 0047CB64 |ADD ECX, 4 0047CB67 |ADD EDX, 4 0047CB6A |OR AH, AH 0047CB6C \JNZ SHORT Publish.0047CB40 ; 以上逐位比较 0047CB6E MOV EAX, EAX 0047CB70 XOR EAX, EAX <--设标志为0 0047CB72 RETN 0047CB73 NOP 0047CB74 SBB EAX, EAX 0047CB76 SHL EAX, 1 0047CB78 INC EAX <--设标志为非0 0047CB79 RETN 返回<-----------------
| 00453B08 ADD ESP, 8 00453B0B TEST EAX, EAX <--判断 00453B0D JNZ SHORT Publish.00453B35 00453B0F MOV WORD PTR DS:[49E280], 0 00453B18 MOV BYTE PTR DS:[49E2F8], 0 00453B1F PUSH 0 ; /Result = 0 00453B21 MOV ECX, [ARG.1] ; | 00453B24 PUSH ECX ; |hWnd 00453B25 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog 00453B2B MOV EAX, 1 00453B30 JMP Publish.00453D24 00453B35 XOR EDX, EDX 00453B37 MOV DL, BYTE PTR DS:[49E2F8] 00453B3D TEST EDX, EDX 00453B3F JE SHORT Publish.00453B62 00453B41 MOVSX EAX, WORD PTR DS:[49E280] 00453B48 TEST EAX, EAX 00453B4A JE SHORT Publish.00453B62 00453B4C PUSH 0 ; /Result = 0 00453B4E MOV ECX, [ARG.1] ; | 00453B51 PUSH ECX ; |hWnd 00453B52 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog 00453B58 MOV EAX, 1 00453B5D JMP Publish.00453D24 00453B62 CMP DWORD PTR DS:[4A00B4], 8 00453B69 JLE SHORT Publish.00453BA3 00453B6B MOV EDX, DWORD PTR DS:[4A00B4] 00453B71 ADD EDX, 1 00453B74 MOV DWORD PTR DS:[4A00B4], EDX 00453B7A PUSH 0AF ; /Arg2 = 000000AF 00453B7F MOV EAX, DWORD PTR DS:[49F0F4] ; | 00453B84 PUSH EAX ; |Arg1 => 01310236 00453B85 CALL Publish.00461D70 ; \Publish.00461D70 00453B8A ADD ESP, 8 00453B8D PUSH 0 ; /Result = 0 00453B8F MOV ECX, [ARG.1] ; | 00453B92 PUSH ECX ; |hWnd 00453B93 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog 00453B99 MOV EAX, 1 00453B9E JMP Publish.00453D24 00453BA3 MOV BYTE PTR SS:[EBP-56], 0
以上会跳到这里: | 00453BA7 LEA EDX, [LOCAL.23] 00453BAA PUSH EDX 00453BAB LEA EAX, [LOCAL.20] ; EAX<--0012E47C,(ASCII "789456") 00453BAE PUSH EAX 00453BAF CALL Publish.00453EC2 ; 用试验码在表中取值 "789456"-->"6i56bm" //我不知道这个字符串的作用,请大家看看. F8 ---------> | 00453F3B MOV EDX, [ARG.1] ; EDX<--0012E47C,(ASCII "789456") 00453F3E MOVSX EAX, BYTE PTR DS:[EDX+3] ; EAX<--DS:[EDX+3]=34 ('4') 第四位3] 00453F42 MOVSX ECX, BYTE PTR DS:[EAX+495930]; ECX=DS:[EAX+495930]=39 ('9') 00453F49 SUB ECX, 3 00453F4C MOV EDX, [ARG.2] 00453F4F MOV BYTE PTR DS:[EDX], CL ; CL=36 ('6') 00453F51 MOV EAX, [ARG.1] ; EAX<--0012E47C,(ASCII "789456") 00453F54 MOVSX ECX, BYTE PTR DS:[EAX] ; ECX<--DS:[EAX]=37 ('7') 第一位X] 00453F57 MOVSX EDX, BYTE PTR DS:[ECX+495900] ; EDX=DS:[ECX+495900]=68 ('h') 00453F5E ADD EDX, 1 00453F61 MOV EAX, [ARG.2] 00453F64 MOV BYTE PTR DS:[EAX+1], DL ; DL=69 ('i') 00453F67 MOV ECX, [ARG.1] ; ECX<--0012E47C,(ASCII "789456") 00453F6A MOVSX EDX, BYTE PTR DS:[ECX+1] ; EDX=DS:[ECX+1]=38 ('8') 00453F6E MOVSX EAX, BYTE PTR DS:[EDX+495910] ; EAX=DS:[EDX+495910]=34 ('4') 00453F75 ADD EAX, 1 00453F78 MOV ECX, [ARG.2] 00453F7B MOV BYTE PTR DS:[ECX+2], AL ; AL=35 ('5') 00453F7E MOV EDX, [ARG.1] ; EDX<--0012E47C,(ASCII "789456") 00453F81 MOVSX EAX, BYTE PTR DS:[EDX+2] ; EAX=DS:[EDX+2]=39 ('9') 00453F85 MOVSX ECX, BYTE PTR DS:[EAX+495920] ; ECX=DS:[EAX+495920]=32 ('2') 00453F8C ADD ECX, 4 00453F8F MOV EDX, [ARG.2] 00453F92 MOV BYTE PTR DS:[EDX+3], CL ; CL=36 ('6') 00453F95 MOV EAX, [ARG.1] ; EAX<--0012E47C,(ASCII "789456") 00453F98 MOVSX ECX, BYTE PTR DS:[EAX+5] ; ECX=DS:[EAX+5]=36 ('6') 00453F9 [1] [2] [3] [4] [5] [6] 下一页 |