GhostView 4.2 简单破解

原创 2004年10月28日 21:17:00

GhostView 4.2 破解

一直在搞我的黑白棋,很久没有破解,手都生了。 我在研究黑白棋编程时找到一堆PS格式的资料,于是下了这个东东来阅读,没想到还要注册。启动时有时会出现NAG窗口,当时忙得没顾上,现在被编程搞晕了想放一放,所以就瞄上它了。根据我的经验,这种国外的看上去比较古老的软件(尽管这是2004年的新版)一般都不太难破。我们来看一看:

无壳,VC7,胡乱输入用户名和前后两段序列号,记下错误信息,用W32DASM反一下,很容易来到下面:

* Possible Reference to Dialog: DialogID_08E8, CONTROL_ID:08EB, ""
                                  |
:0044C101 68EB080000              push 000008EB
:0044C106 8B4D08                  mov ecx, dword ptr [ebp+08]
:0044C109 51                      push ecx

* Reference To: USER32.GetDlgItemInt, Ord:0112h
                                  |
:0044C10A FF15705C4A00            Call dword ptr [004A5C70]    ;得到前面一段序列号
:0044C110 8945FC                  mov dword ptr [ebp-04], eax    ;放在[EBP-4]
:0044C113 6A00                    push 00000000
:0044C115 6A00                    push 00000000

* Possible Reference to Dialog: DialogID_08E8, CONTROL_ID:08EC, ""
                                  |
:0044C117 68EC080000              push 000008EC
:0044C11C 8B5508                  mov edx, dword ptr [ebp+08]
:0044C11F 52                      push edx

* Reference To: USER32.GetDlgItemInt, Ord:0112h
                                  |
:0044C120 FF15705C4A00            Call dword ptr [004A5C70]    ;得到后面一段序列号
:0044C126 8985F4FEFFFF            mov dword ptr [ebp+FFFFFEF4], eax  ;放在[EBP+FFFFFEF4]
:0044C12C 6800010000              push 00000100
:0044C131 8D85F8FEFFFF            lea eax, dword ptr [ebp+FFFFFEF8]
:0044C137 50                      push eax

* Possible Reference to Dialog: DialogID_08E8, CONTROL_ID:08EA, ""
                                  |
:0044C138 68EA080000              push 000008EA
:0044C13D 8B4D08                  mov ecx, dword ptr [ebp+08]
:0044C140 51                      push ecx

* Reference To: USER32.GetDlgItemTextA, Ord:0113h
                                  |
:0044C141 FF151C5D4A00            Call dword ptr [004A5D1C]    ;得到用户名
:0044C147 837DFC00                cmp dword ptr [ebp-04], 00000000  
:0044C14B 7470                    je 0044C1BD        ;用户名不能为空
:0044C14D 8B55FC                  mov edx, dword ptr [ebp-04]    ;前段序列号作CALL的参数
:0044C150 52                      push edx
:0044C151 E8B44EFBFF              call 0040100A        ;关键CALL,跟进
:0044C156 83C404                  add esp, 00000004
:0044C159 3985F4FEFFFF            cmp dword ptr [ebp+FFFFFEF4], eax  ;返回值与输入的后段序列号比较
:0044C15F 755C                    jne 0044C1BD        ;不等就完蛋了

.................略

:0044C1BD 68FF000000              push 000000FF
:0044C1C2 8D85F0FDFFFF            lea eax, dword ptr [ebp+FFFFFDF0]
:0044C1C8 50                      push eax

* Possible Reference to String Resource ID=00864: "Invalid Registration Name or Number"
                                  |
:0044C1C9 6860030000              push 00000360
:0044C1CE E8FA58FBFF              call 00401ACD
:0044C1D3 83C40C                  add esp, 0000000C
:0044C1D6 6A30                    push 00000030

* Possible StringData Ref from Data Obj ->"GSview"
                                  |
:0044C1D8 68802E4800              push 00482E80
:0044C1DD 8D8DF0FDFFFF            lea ecx, dword ptr [ebp+FFFFFDF0]
:0044C1E3 51                      push ecx
:0044C1E4 8B5508                  mov edx, dword ptr [ebp+08]
:0044C1E7 52                      push edx

* Reference To: USER32.MessageBoxA, Ord:01DEh
                                  |
:0044C1E8 FF15505D4A00            Call dword ptr [004A5D50]  ;死翘翘了

进入关键的CALL,

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040100A(U)
|
:004253A0 55                      push ebp
:004253A1 8BEC                    mov ebp, esp
:004253A3 83EC14                  sub esp, 00000014
:004253A6 C745EC08840000          mov [ebp-14], 00008408  ;常数
:004253AD 8B4508                  mov eax, dword ptr [ebp+08]  ;传入的参数,前段序列号
:004253B0 8945F0                  mov dword ptr [ebp-10], eax  ;局部变量
:004253B3 C745F800000000          mov [ebp-08], 00000000  ;局部变量
:004253BA C745F400000000          mov [ebp-0C], 00000000  
:004253C1 EB09                    jmp 004253CC

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00425405(U)
|
:004253C3 8B4DF4                  mov ecx, dword ptr [ebp-0C]  ;[EBP-C]是循环变量
:004253C6 83C101                  add ecx, 00000001
:004253C9 894DF4                  mov dword ptr [ebp-0C], ecx  ;循环变量递增

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004253C1(U)
|
:004253CC 837DF420                cmp dword ptr [ebp-0C], 00000020
:004253D0 7335                    jnb 00425407      ;循环20次
:004253D2 8B55F8                  mov edx, dword ptr [ebp-08]  ;下面是核心部分
:004253D5 83E201                  and edx, 00000001
:004253D8 8955FC                  mov dword ptr [ebp-04], edx
:004253DB 8B45F8                  mov eax, dword ptr [ebp-08]
:004253DE D1E8                    shr eax, 1
:004253E0 8B4DF0                  mov ecx, dword ptr [ebp-10]
:004253E3 83E101                  and ecx, 00000001
:004253E6 C1E10F                  shl ecx, 0F
:004253E9 03C1                    add eax, ecx
:004253EB 8945F8                  mov dword ptr [ebp-08], eax
:004253EE 837DFC01                cmp dword ptr [ebp-04], 00000001
:004253F2 7509                    jne 004253FD
:004253F4 8B55F8                  mov edx, dword ptr [ebp-08]
:004253F7 3355EC                  xor edx, dword ptr [ebp-14]
:004253FA 8955F8                  mov dword ptr [ebp-08], edx

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004253F2(C)
|
:004253FD 8B45F0                  mov eax, dword ptr [ebp-10]
:00425400 D1E8                    shr eax, 1
:00425402 8945F0                  mov dword ptr [ebp-10], eax  ;上面是核心部分
:00425405 EBBC                    jmp 004253C3      ;循环结束

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004253D0(C)
|
:00425407 8B45F8                  mov eax, dword ptr [ebp-08]  ;计算结果放入EAX传出
:0042540A 8BE5                    mov esp, ebp
:0042540C 5D                      pop ebp
:0042540D C3                      ret

整理一下思路,很简单了,程序根据前段的序列号经过计算得到一个值,如果与后段序列号相同就成功,用户名可以任意。那么我们写一个函数来再现这个过程就行了,也用不着费劲求逆了。那段计算乱糟糟的我就直接写在程序里了。注册机代码:(VC++6.0)
#include <iostream.h>

int Check(int EBP_10)
{
  int EBP_4=0,EBP_8=0,EBP_C=0;
  int EBP_14=0x8408;
  for (int i=0;i<0x20;i++)
  {
    EBP_4=EBP_8 & 1;
    EBP_8=(EBP_8>>1)+((EBP_10 & 1)<<0xF);
    EBP_10>>=1;
    if (EBP_4!=0) EBP_8 ^= EBP_14;
  }
  return EBP_8;
}//基本上全按汇编码翻译过来的

void main()
{
  cout<<"The Serial Number for GhostView"<<endl;
  cout<<"One of the valid number is :";
  cout<<88888<<"-"<<Check(88888)<<endl;
  cout<<"KeyGen by RoBa  ThanQ!"<<endl;
}

一个可用的序列号: 88888 - 37941

OK,Very Simple?

jira 4.2 安装 (含破解及添加GreenHopper安装及破解)【转】

一、安装 1.Linux & MySql & JDK安装步骤省略,我使用的是Debian5 + MySql5 + JDK6 2.下载JIRA4.2,下载地址:http://ww...
  • babydavic
  • babydavic
  • 2012年12月14日 12:39
  • 2028

【Untiy3D 游戏开发之一】Unity3D For Window/Mac最新4.2.0版本破解教程

转载请标明:转载自【小枫栏目】,博文链接:http://blog.csdn.net/rexuefengye/article/details/10553487 一、Unity3D For Mac  ...
  • my183100521
  • my183100521
  • 2013年09月13日 16:01
  • 9666

jira4.2破解与汉化

一、破解前的工作     1. 在未破解前的首页输入找到Server ID,记录之。     2. 下载破解工具jira_keygen.jar(http://download.csdn.net/d...
  • huang_xw
  • huang_xw
  • 2012年06月12日 14:01
  • 1740

Windows Embedded CE 4.2/5.0/6.0开发工具下载大全

1.  Sjf2410.exe及其Giveio.sys程序http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProc...
  • bjtuzdq
  • bjtuzdq
  • 2009年01月06日 17:29
  • 3573

破解Sencha Architect 2.2(ExtJs Designer)

Sencha Architect 2是ExtJS和Sencha Touch的官方可视化IDE工具。最新版本是2.2,说是破解,其实是修改License来实现无限试用而已。 1、先下载安装官方软件,大...
  • clj198606061111
  • clj198606061111
  • 2013年12月07日 14:59
  • 3397

GhostView

GhostView可以在不改变View的parent的情况下,在自己的Overlay里绘制另一个View。被绘制的View不会在它的Parent里绘制,因为View的visibility被设为INVI...
  • weixin_38020796
  • weixin_38020796
  • 2017年03月22日 17:55
  • 337

dotnetCHARTING.WinForms 4.2 for vs2003 破解

用ILDASM反编译为.il文件后,查找"Not for production use",找到后,删除整段代码,只保留ret,共2处!1.此处是界面上的水印    .method private hi...
  • 51Crack
  • 51Crack
  • 2007年04月17日 15:08
  • 1993

Dataservice upgrade from 4.2 sp4 to 4.2 sp7

2324793 - Release Notes for SAP Data Services 4.2 Support Pack 7 Patch 1 (14.2.7.1237) compare the ...
  • Daniel_GJ_TAN
  • Daniel_GJ_TAN
  • 2016年11月23日 11:46
  • 456

mamp pro破解方法

在windows上有phpStudy可以自由切换PHP版本。但是在mac上只能自己手动切,相当麻烦。最近研究了一下,MAMP 可以说是很不错 能自由切换版本,设置虚拟主机支持安装php扩...
  • resilient
  • resilient
  • 2017年03月12日 17:12
  • 4498

Ext.NET Pro 2.0.0 破解版使用说明

Ext.NET Pro 2.0.0 破解版使用说明 (转载请保留,欢迎光临我的CSDN BLOG: http://blog.csdn.net/coldwind811201)   破解版下载...
  • coldwind811201
  • coldwind811201
  • 2013年01月02日 10:34
  • 5678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GhostView 4.2 简单破解
举报原因:
原因补充:

(最多只允许输入30个字)