首页
论坛
专栏
课程

雨过天晴自我注册

2006-10-23 20:40 21709

雨过天晴自我注册

2006-10-23 20:40
21709
雨过天晴电脑保护系统的注册判断过程非常直接,只要硬盘上有正版注册标志它就认为是正版。但是雨过天晴电脑保护系统可以分为两个部分:windows环境下的主体程序EAZTRAY.exe和非windows环境的辅助程序(计算机启动时按HOME键可进入),而每一个进度还原的操作都会用到这个辅助程序,所以在windows下爆破主体程序或者其他诸如补丁的方法没有任何意义。让试用版变成注册版,我们要做的只能是把已注册标志写入硬盘。自己写程序完成这个过程有点麻烦(在DOS下方便一点),让雨过天晴主体程序自我完成注册标志的写入才是最简单和快捷的。

   这里拿060612专业版本为例。雨过天晴软件在进入系统的时候自动运行,可以先用任务管理器结束其进程,然后OD加载分析看看其正式版的标志是什么。至于判断的位置,很容易就能找见,最简单的方法就是搜索字串"试用期限"然后向前定位,或者通过API函数WinSysTime2ShieldSysTime定位。这里说两个关键的地方:

1.内存地址0040B8C6处,cmp byte ptr[esi+6CD],2
   [esi+6CD]中存放的就是注册标志,一个byte,1为试用版,2为正式版,3就不用管了。在这里中断后要记下[esi+6CD]所指的位置,每台机器上都是不同的。
2.内存地址0040B93C处,jle 0040B95E
   注意后面不远处的call 0043ED36,这个call中有写入注册信息的部分,这意味着0040B93Ch处绝对不能跳。

   接下来很简单了,要做的就是在调用call 0043ED36前把注册标志改为2;当然这个过程必须是在程序执行到0040B93C处才能做。下断0040B8C6和0040B93C,
在0040B93C中断后,修改[esi+6CD]中的值为2,然后设法不让跳,过了call 0043ED36后注册信息就被写入了。修改日期到7天以后,重新启动HOME键进去试试,没有任何提示,正版了吧?
  
   如果要写个类似loader的东西作为注册工具,可以如下:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;雨过天晴自我注册
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include        user32.inc
include        kernel32.inc
includelib     user32.lib
includelib     kernel32.lib
includelib     dic32u.lib
include        macro.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
BREAK_POINT1   equ 0040B8C6h ;第一个断点
BREAK_POINT2   equ 0040B93Ch ;第二个断点

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.const
dbPatched1     db 02h
dbPatched2     db 90h,90h
dbInt3         db 0cch
dbOldByte      db 80h
szExecFilename db 'EAZTRAY.exe',0

.data?
align           dword
PATCH_POSITION  dd ?
dwTemp          dd ?
stCT            CONTEXT <?>
stDE            DEBUG_EVENT <?>
stStartUp       STARTUPINFO <>
stProcInfo      PROCESS_INFORMATION <>
stProcess       PROCESSENTRY32<>
hSnapShot       dd ?

.code
Start:
    invoke RtlZeroMemory,addr stProcess,sizeof stProcess
    mov stProcess.dwSize,sizeof stProcess
    invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,0
    mov hSnapShot,eax
    invoke Process32First,hSnapShot,addr stProcess
    .while eax
        invoke CompareString,LOCALE_USER_DEFAULT,NORM_IGNORECASE,addr szExecFilename,\
sizeof szExecFilename,addr stProcess.szExeFile,sizeof szExecFilename
        .if eax==2
            invoke OpenProcess,PROCESS_TERMINATE,FALSE,stProcess.th32ProcessID
            .if eax
                mov ebx,eax
                invoke TerminateProcess,ebx,-1
                invoke  CloseHandle,ebx
            .endif
            .break
        .endif
        invoke Process32Next,hSnapShot,addr stProcess
    .endw
;********************************************************************
; 创建进程
;********************************************************************
    invoke GetStartupInfo,addr stStartUp
    invoke CreateProcess,offset szExecFilename,NULL,NULL,NULL,NULL,\
        DEBUG_PROCESS or DEBUG_ONLY_THIS_PROCESS,NULL,NULL,\
        offset stStartUp,offset stProcInfo
    .if    !eax
        invoke MessageBox,NULL,CTEXT("无法装载目标文件,",0dh,"复制本程序到雨果天晴安装目录下执行!"),NULL,MB_OK or MB_ICONSTOP
        invoke ExitProcess,NULL
    .endif
;********************************************************************
; 调试进程
;********************************************************************
    .while TRUE
        invoke WaitForDebugEvent,addr stDE,INFINITE
        .break .if stDE.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT
;********************************************************************
; 如果进程开始,则将入口地址处的代码改为 int 3 断点中断
;********************************************************************
        .if stDE.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT
            invoke WriteProcessMemory,stProcInfo.hProcess,BREAK_POINT1,addr dbInt3,1,addr dwTemp
            invoke WriteProcessMemory,stProcInfo.hProcess,BREAK_POINT2,addr dbInt3,1,addr dwTemp
;********************************************************************
; 如果发生断点中断,则恢复断点处代码并进行内存补丁
;********************************************************************
        .elseif stDE.dwDebugEventCode == EXCEPTION_DEBUG_EVENT
            .if stDE.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_BREAKPOINT
                mov stCT.ContextFlags,CONTEXT_FULL
                invoke GetThreadContext,stProcInfo.hThread,addr stCT
                .if stCT.regEip == BREAK_POINT1 + 1
                    dec stCT.regEip
                    invoke WriteProcessMemory,stProcInfo.hProcess,BREAK_POINT1,addr dbOldByte,1,addr dwTemp
                    mov eax,stCT.regEsi
                    add eax,6CDh
                    mov PATCH_POSITION,eax
                    invoke SetThreadContext,stProcInfo.hThread,addr stCT
                .elseif stCT.regEip == BREAK_POINT2 + 1
                    dec stCT.regEip
                    invoke WriteProcessMemory,stProcInfo.hProcess,BREAK_POINT2,addr dbPatched2,sizeof dbPatched2,addr dwTemp
                    invoke WriteProcessMemory,stProcInfo.hProcess,PATCH_POSITION,addr dbPatched1,sizeof dbPatched1,addr dwTemp
                    invoke SetThreadContext,stProcInfo.hThread,addr stCT
                .endif
            .endif
        .endif
        invoke ContinueDebugEvent,stDE.dwProcessId,stDE.dwThreadId,DBG_CONTINUE
    .endw
    invoke CloseHandle,stProcInfo.hProcess
    invoke CloseHandle,stProcInfo.hThread
    invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end Start

好了,想要研究该软件的穷光蛋们不妨试试。

[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (54)
lingyu 1 2006-10-23 22:39
2
0
支持,直接贴源代码!!!!
小剑 2006-10-24 08:34
3
0
这样的贴是值得顶的,支持
LOCKLOSE 2 2006-10-24 08:38
4
0
学习.原来方法可以这么简单.想复杂了.
binbinbin 28 2006-10-24 10:49
5
0
我也来试试。看到楼主的汇编注册。头晕,还是用高级语言好
xiong779 2006-10-24 14:23
6
0
下蒌??一下看看,著著分享
qfejj 7 2006-10-24 14:46
7
0
原本如此,不过对新版本即9月8号版不能完成注册。你启机时按HOME键进去看看,尝试恢复进度,如果没有出现注册对话框就算是注册了。
zique 2006-10-24 14:51
8
0
0908的好象网站只有试用版……
laomms 34 2006-10-24 15:27
9
0
最初由 qfejj 发布
1.内存地址0040B8C6处,cmp byte ptr[esi+6CD],2
........


其中的部分代码非常有用!
LOCKLOSE 2 2006-10-24 20:41
10
0
有了这分析结果对付060908就太容易了.多谢分享~
jmzz 2006-10-25 10:09
11
0
依据lz的分析搞定1.0.5.0.20061023

未搞定,
qfejj 7 2006-10-25 10:50
12
0
最初由 jmzz 发布
依据lz的分析搞定1.0.5.0.20061023


把日期往后调,恢复进度试试。windows下主程序EAZTRAY.exe没有注册提示不表示已经完全注册了。
wenglingok 26 2006-10-25 11:12
13
0
最初由 寒秋 发布
这是安悦科技主页上的材料:
最新版本 V1.0.5.1.20060908
人气指数 80433
【关于版本号】 由于公安部销售许可证上面注明的产品名称为"雨过天晴电脑保护系统V1.0",所以,本产品的版本号就固定为V1.0,这个版本号是不可以更改的。 为了区分每次发布的新版本,我们在后面注明真实的版本号例如5.0 和版本发布日期如20060611。

........


原来是电脑保护系统。我可不愿意消耗大量的资源来保护系统。

LZ 的方法值得学习。
jmzz 2006-10-25 11:31
14
0
最初由 寒秋 发布
这是安悦科技主页上的材料:
最新版本 V1.0.5.1.20060908
人气指数 80433
【关于版本号】 由于公安部销售许可证上面注明的产品名称为"雨过天晴电脑保护系统V1.0",所以,本产品的版本号就固定为V1.0,这个版本号是不可以更改的。 为了区分每次发布的新版本,我们在后面注明真实的版本号例如5.0 和版本发布日期如20060611。

........

企业版本
主要有个网络管理程序
jmzz 2006-10-25 12:03
15
0
革命尚未成功。
qfejj 7 2006-10-25 13:19
16
0
最初由 寒秋 发布
最新版的个人专业版060908,依葫芦画瓢,破解成功。


如果仅仅依葫芦画瓢,应该是没有破解成功;060908版做过处理了。不妨用Winhex打开硬盘看看,会给你带来惊喜。
ljy3282393 1 2006-10-25 14:31
17
0
最初由 qfejj 发布
如果仅仅依葫芦画瓢,应该是没有破解成功;060908版做过处理了。不妨用Winhex打开硬盘看看,会给你带来惊喜。

做过什么处理?能具体说说吗?谢谢!
elance 6 2006-10-25 18:54
18
0
qfejj强啊,我连个loader的编不出来,
你的代码借用了,谢谢,
foto 2006-10-26 17:57
19
0
引用: 最初由 qfejj 发布
如果仅仅依葫芦画瓢,应该是没有破解成功;060908版做过处理了。不妨用Winhex打开硬盘看看,会给你带来惊喜。

做过什么处理?能具体说说吗?谢谢!

试试重新启动 按Home键 然后创建个新的进度 看看
yczzz 2006-10-27 07:59
20
0
好是很好呀!可是俺是菜鸟呀!
jtfzp 2006-10-27 22:03
21
0
顶一个。请楼主多谈一点0908版做了什么处理了?
zhuwg 11 2006-10-28 11:35
22
0
电脑保护系统功能不怎么好
不过LZ的破解方法是值得学习的
doscommand 2006-10-31 22:48
23
0
060908版始终无法破解?哪位前辈能否指点一二
jkfais 2006-11-1 00:36
24
0
最初由 LOCKLOSE 发布
有了这分析结果对付060908就太容易了.多谢分享~

的确是啊,柳暗花明,当时想的他复杂了
doscommand 2006-11-1 10:41
25
0
用这个方法,在按home键进入恢复,还是要输注册码。Why
老二 2006-11-1 16:06
26
0
谁能够教教我这个刚学的菜鸟!!!!!各位高手,,请教教我吧。。。我的QQ是:76465984      加时注明:破解
Jovzhao 2006-11-1 17:12
27
0
好贴,研究中
qfejj 7 2006-11-1 20:00
28
0
最初由 doscommand 发布
用这个方法,在按home键进入恢复,还是要输注册码。Why


060908版有过一些处理,最简单的你可以用winhex打开硬盘扇区找到安装日期,然后修改,这个不需要任何技术,识字就行,只能说这么多了。
jtfzp 2006-11-1 23:50
29
0
还是不懂啊,我搜了半天,也出搜到东西。请问输入日期格式是什么?应该怎么改日期?大侠能给我发一封EMAIL吗?在线等。
doscommand 2006-11-2 21:31
30
0
非常感谢qfejj的指点。继续学习
ruyi 1 2006-11-5 02:22
31
0
最初由 jmzz 发布
依据lz的分析搞定1.0.5.0.20061023


可以给我一份吗?
9016009 2006-11-5 09:14
32
0
绝对好文!!!
hhhwww 2006-11-5 12:06
33
0
楼主,是不是读注册标志位的软件都可以这么做呀?
9016009 2006-11-6 16:20
34
0
请教一下LZ以下这段是怎样操作的,我是菜鸟,高手别见笑

这里拿060612专业版本为例。雨过天晴软件在进入系统的时候自动运行,可以先用任务管理器结束其进程,然后OD加载分析看看其正式版的标志是什么。至于判断的位置,很容易就能找见,最简单的方法就是搜索字串"试用期限"然后向前定位,或者通过API函数WinSysTime2ShieldSysTime定位。
jtfzp 2006-11-10 21:10
35
0
最初由 qfejj 发布
雨过天晴电脑保护系统可以分为两个部分:windows环境下的主体程序EAZTRAY.exe和非windows环境的辅助程序(计算机启动时按HOME键可进入),而每一个进度还原的操作都会用到这个辅助程序,所以在windows下爆破主体程序或者其他诸如补丁的方法没有任何意义。

请问这个非windows环境的辅助程序在哪里?是什么文件?能说说吗?
squanpo 2006-11-27 16:18
36
0
雨过天晴专业版061124已出,能谈一下。060908版?
wopasi 1 2006-11-27 16:29
37
0
大大这么强!呵呵汇编能力超强.我等小辈望尘莫及~~
支持下啦~~~~
qfejj 7 2006-12-4 20:25
38
0
winhex;硬盘;expiretime
studentXP 1 2006-12-6 00:08
39
0
先安装 20060612,重启,运行注册补丁(内存)
再安装 20061124,更新起点(保存)

这样的装法是可以正常使用所有功能的,时间测试也正常。

是不是安装 20061124 更新的时候,没有更新主引导程序还是什么?或者能根据这个得出什么结论么?
hxqlky 2006-12-6 01:12
40
0

好帖
很好帖
确实好帖
少见的好帖
真 TMD 好帖
难得一见的好帖
千年等一回的好帖
好得不能再好的好帖
惊天地且泣鬼神的好帖
让人阅毕击掌三叹的好帖
让人佩服得五体投地的好帖
让人奔走相告曰须阅读的好帖
让斑竹看后决定加精固顶的好帖
让人看后在各论坛纷纷转贴的好帖
让人看后连成人网站都没兴趣的好帖
让人看完后就要往上顶往死里顶的好帖
让人看后不断在各种场合重复引用的好帖
让人一见面就问你看过某某好帖没有的好帖
让人半夜上厕所都要打开电脑再看一遍的好帖
让个读过后都下载在硬盘里详细研究欣赏的好帖
让人走路吃饭睡觉干什么事连做梦都梦到它的好帖
让人翻译成36种不同外语流传国内外世界各地的好帖
让人纷纷唱道过年过节不送礼要送就送某某帖子的好帖
让国家领导人命令将该帖刻在纯金版上当国礼送人的好帖
让网络上纷纷冒出该帖的真人版卡通版搞笑版成人版的好帖
让人在公共厕所里不再乱涂乱化而是纷纷对它引经据典的好帖
让某位想成名的少女向媒体说她与该帖作者发生过性关系的好帖
让人根据它写成小说又被不同导演拍成48个不同版本的电影的好帖
让某名导演跟据此帖改拍的电影在奥斯卡上一连拿了11个奖项的好帖
让人大代表们看完后联名要求根据该帖的内容对宪法做适当修改的好帖
让人为了谁是它的原始作者纷纷地闹上法院打官司要争得它的版权的好帖
让各大学府纷纷邀请该帖作者去就如何发表优秀网络文学为题目演讲的好帖
让人为了该帖而成立了各种学会来研究并为不同的理解争得眼红脖子粗的好帖
让美国警察于今后逮捕人说你有权保持沉默还有权阅读某某帖子要不要啊的好帖
让本拉登躲在山洞里还命令他手下冒着被美军发现的危险去上网下载来阅读的好帖
让萨达姆被捕时被发现他随身携带的除了一把手枪之外还有的就是它的复印件的好帖
让比尔盖茨在懂事会上发给与会者人手一份该帖命令仔细阅读后才讨论其他事宜的好帖
让诺贝儿奖理事会破天荒地因该帖的出现而开会讨论一直决定今后设立最佳帖子奖的好帖
让联合国安理会决定将它译成宇宙语由中国神州六号升空后不断播放看有没有外星人的好帖
让人看完后IE锁死连瑞星诺顿都没法修复只好格式化硬盘重装启动后主页显示的还是它的好帖
hxqlky 2006-12-6 01:18
41
0
先支持了兄弟!我学crack起步低!许要大侠指点啊!uc74119511,uc33851
pxfpxw 2006-12-6 16:19
42
0
先安装 20060612,重启,运行注册补丁(内存)
再安装 20061124,更新起点(保存)

这样的装法是可以正常使用所有功能的,时间测试也正常。

这样是行不通的你更新的话马上就不能进入系统.而且你把系统重新安装也没用.还是进不了系统.按照qqje说的改安装时间我也改了也是不行..希望大家把你们的好建议发表一下.供大家学习一下.
foto 2006-12-7 15:37
43
0
最初由 pxfpxw 发布
先安装 20060612,重启,运行注册补丁(内存)
再安装 20061124,更新起点(保存)

这样的装法是可以正常使用所有功能的,时间测试也正常。

........


可以进入系统吧  我昨天这样做的  然后改了时间也正常 (到今天为止还没有坏)  不过我安装完20060612不是用注册补丁注册的 自己用od手动改的
pxfpxw 2006-12-7 19:25
44
0
哦我是用注册的楼上朋友可以把你怎样修改贴出来吗?本人不会啊.
foto 2006-12-8 13:32
45
0
最初由 pxfpxw 发布
哦我是用注册的楼上朋友可以把你怎样修改贴出来吗?本人不会啊.


一楼不是就说的是方法吗??照那个下断然后改就可以了
pxfpxw 2006-12-8 17:18
46
0
改好了测试.........DOS下过期没有办法恢复.
流の星 2007-3-20 10:23
47
0
这样还是不行~~~~过期后DOS的功能不能用了
怀抱理想 2007-3-20 15:40
48
0
楼主好利害哦~学习下
拾陆咄氧 2007-3-27 22:55
49
0
谢谢大侠的分析,小菜我试着LOADER了061208版本的雨过天晴,好像是正版的了,并且调整时间到一个月之后,进入DOS界面中可以正常使用;但当我将时间调整到2020年左右时,DOS下的功能需要注册,不知为何。可否详细告知,能将相关资料发送给我么,我相当想进步!
我的邮件地址:kinson.cat@gmail.com
ceker 2007-8-22 16:07
50
0
麻烦 小弟菜鸟 不知道 macros.asm 是哪儿的 总是编译不过去。
  谢谢指教
游客
登录 | 注册 方可回帖
返回