老文章档案 · 2003 年

STEP7KNOW_HOW_PROTECT version1.0 暴破手记

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-29 · 作者:飞龙狗狗 人气: · 出处:嬴政天下整理收藏)

STEP7KNOW_HOW_PROTECT version1.0 (Borland C++编写) 暴破手记

说实在的, STEP7KNOW_HOW_PROTECT version1.0 是用来干什么的,本人到目前还不知道,如果哪位大侠知道的话请告诉一声,好让在下破个明目:)。这是前几天一位网发到邮箱求破的,一直没有时间,今天闲来无事,故拿出来练练手,反正闲着也是闲,呵呵。。。

编写语言: Borland C++

工具:peid 0.8 and dede2.5 and hiew6.82

BEGIN !

一,用peid 0.8打开其可执行文件S7know.exe,发现程序没有加壳,由Borland C++编写。。。什么?Borland C++ !头晕。。。转念一想,用dede应该可以吧。。。试试!

二,用dede2.5载入S7know.exe。。。。呵呵。。。。载入成功!这下好办啦。。。让我们开始吧。

三,在dede2.5窗口中选取“procedures”,发现unit name 窗口中共有四个项目,分别是“unitabout” “unitmain” “unitreg” “unitselect” 在这里。。。当然是先查看“unitreg”了。。。可是当我打开“unitreg”时却发现里面什么也没有。。。怎么办呢,还是选取“unitabout”看看:右边窗口里面有很多项目,选择右边窗口里的“formshow”看看,双击打开后出现以下这些不是垃圾的垃圾。。。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

|

00407A73 E8E4870800 call 0049025C

00407A78 BE05000000 mov esi, $00000005

00407A7D 8D45FC lea eax, [ebp-$04]

* Reference to field TAboutBox.OFFS_0304

|

00407A80 89B304030000 mov [ebx+$0304], esi

00407A86 8BD6 mov edx, esi

00407A88 66C745E80800 mov word ptr [ebp-$18], $0008

|

00407A8E E80D280900 call 0049A2A0

00407A93 FF45F4 inc dword ptr [ebp-$0C]

00407A96 8B10 mov edx, [eax]

* Reference to control TimeCount : TLabel

|

00407A98 8B83FC020000 mov eax, [ebx+$02FC]

|

00407A9E E839850500 call 0045FFDC

00407AA3 FF4DF4 dec dword ptr [ebp-$0C]

00407AA6 8D45FC lea eax, [ebp-$04]

00407AA9 BA02000000 mov edx, $00000002

|

00407AAE E831280900 call 0049A2E4

* Reference to field TAboutBox.OFFS_0308

|

00407AB3 80BB0803000000 cmp byte ptr [ebx+$0308], $00

00407ABA 7423 jz 00407ADF <--------注意这里!(改00407ABA 7423 jz 00407ADF 为00407ABA eb23 jmp 00407ADF)

00407ABC B201 mov dl, $01

* Reference to control TimerClose : TTimer

|

00407ABE 8B83F8020000 mov eax, [ebx+$02F8]

|

00407AC4 E8C3120500 call 00458D8C

00407AC9 33D2 xor edx, edx

* Reference to control OKButton : TButton

|

00407ACB 8B83E8020000 mov eax, [ebx+$02E8]

00407AD1 8B08 mov ecx, [eax]

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

不知你有没有注意上面的“00407ABA 7423 jz 00407ADF”这一句,其作用是:当时间等于五秒时,将延时窗口中的ok按钮的Enabled属性由false变为true。。。呵呵,运行hiew,找到“00407ABA 7423 jz 00407ADF”这一句,改“00407ABA 7423 jz 00407ADF”为“00407ABA eb23 jmp 00407ADF” 即改“7423”为“eb23”,让它永远不会延时!

四,运行一下程序看看,发现延时窗口中的ok按钮已经是可用的了(Enabled=true), 而从5到0的倒记时也已经失效,呵呵。。。成功了一小点,但当我把系统时间往后移三十天再运行程序时,发现程序里的很多功能已经失效,说明程序的时间限制还未解决,让我们乘胜追击 ,干掉它!

五,回到dede2.5的工作界面,选取unitmain看看,呵呵,里 面也有很多选项,在这里我们还是选“formshow”。。。为什么呢?因为程序决定各种功能是否受限时,一般是在show窗体的时候 进行设置的,当然也会有例外。。。还是那句话:见-鸡-行-事。。。 双击打开后:

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

|

00402007 E8D8820900 call 0049A2E4

0040200C 59 pop ecx

0040200D 84C9 test cl, cl

0040200F 0F84D0030000 jz 004023E5 <------------注意这里!(A)

00402015 66C78504FFFFFFE000 mov word ptr [ebp+$FFFFFF04], $00E0

* Possible String Reference to: 'Path1'

|

0040201E BA45C64900 mov edx, $0049C645

00402023 8D45BC lea eax, [ebp-$44]

|

00402026 E8A5810900 call 0049A1D0

0040202B FF8510FFFFFF inc dword ptr [ebp+$FFFFFF10]

00402031 8B10 mov edx, [eax]

00402033 8B85ECFEFFFF mov eax, [ebp+$FFFFFEEC]

|

00402039 E85A040300 call 00432498

0040203E 33C9 xor ecx, ecx

00402040 BA02000000 mov edx, $00000002

00402045 8AC8 mov cl, al

00402047 83F901 cmp ecx, +$01

0040204A 1BC0 sbb eax, eax

0040204C F7D8 neg eax

0040204E 50 push eax

0040204F 8D45BC lea eax, [ebp-$44]

00402052 FF8D10FFFFFF dec dword ptr [ebp+$FFFFFF10]

|

00402058 E887820900 call 0049A2E4

0040205D 59 pop ecx

0040205E 84C9 test cl, cl

00402060 7466 jz 004020C8

00402062 BA51C64900 mov edx, $0049C651

00402067 8D45B4 lea eax, [ebp-$4C]

|

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

004023D1 83FB04 cmp ebx, +$04

004023D4 0F8E0CFFFFFF jle 004022E6

004023DA 8B85ECFEFFFF mov eax, [ebp+$FFFFFEEC]

|

004023E0 E893FC0200 call 00432078

004023E5 66C78504FFFFFF6401 mov word ptr [ebp+$FFFFFF04], $0164

* Possible String Reference to: 'Software\S7KNOW\License'

|

004023EE BA82C64900 mov edx, $0049C682

004023F3 8D4580 lea eax, [ebp-$80]

|

004023F6 E8D57D0900 call 0049A1D0

004023FB FF8510FFFFFF inc dword ptr [ebp+$FFFFFF10]

00402401 8B10 mov edx, [eax]

00402403 B101 mov cl, $01

00402405 8B85ECFEFFFF mov eax, [ebp+$FFFFFEEC]

|

0040240B E8FCFC0200 call 0043210C

00402410 50 push eax

00402411 FF8D10FFFFFF dec dword ptr [ebp+$FFFFFF10]

00402417 8D4580 lea eax, [ebp-$80]

0040241A BA02000000 mov edx, $00000002

|

0040241F E8C07E0900 call 0049A2E4

00402424 59 pop ecx

00402425 84C9 test cl, cl

00402427 0F84E6040000 jz 00402913 <------------注意这里!(B)

0040242D 66C78504FFFFFF7001 mov word ptr [ebp+$FFFFFF04], $0170

* Possible String Reference to: 'Info1'

|

00402436 BA9AC64900 mov edx, $0049C69A

0040243B 8D857CFFFFFF lea eax, [ebp+$FFFFFF7C]

|。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

00402903 E8DC790900 call 0049A2E4

00402908 8B85ECFEFFFF mov eax, [ebp+$FFFFFEEC]

|

0040290E E865F70200 call 00432078

00402913 66C78504FFFFFF1400 mov word ptr [ebp+$FFFFFF04], $0014

0040291C 8B9DECFEFFFF mov ebx, [ebp+$FFFFFEEC]

00402922 899D30FFFFFF mov [ebp+$FFFFFF30], ebx

00402928 85DB test ebx, ebx

0040292A 742A jz 00402956 <------------注意这里!(C)

0040292C 8B03 mov eax, [ebx]

0040292E 898534FFFFFF mov [ebp+$FFFFFF34], eax

00402934 66C78504FFFFFF0C02 mov word ptr [ebp+$FFFFFF04], $020C

0040293D BA03000000 mov edx, $00000003

00402942 8B8530FFFFFF mov eax, [ebp+$FFFFFF30]

00402948 8B08 mov ecx, [eax]

0040294A FF51FC call dword ptr [ecx-$04]

0040294D 66C78504FFFFFF0002 mov word ptr [ebp+$FFFFFF04], $0200

00402956 6683BD06FFFFFF00 cmp word ptr [ebp+$FFFFFF06], +$00

0040295E 7401 jz 00402961 <------------注意这里!(D)

00402960 C3 ret

00402961 66C78504FFFFFF1802 mov word ptr [ebp+$FFFFFF04], $0218

0040296A 33D2 xor edx, edx

0040296C 89952CFFFFFF mov [ebp+$FFFFFF2C], edx

00402972 8D8D2CFFFFFF lea ecx, [ebp+$FFFFFF2C]

00402978 FF8510FFFFFF inc dword ptr [ebp+$FFFFFF10]

0040297E 8B85F0FEFFFF mov eax, [ebp+$FFFFFEF0]

00402984 8B906C040000 mov edx, [eax+$046C]

0040298A 8B85F0FEFFFF mov eax, [ebp+$FFFFFEF0]

|

00402990 E8F3420000 call 00406C88

00402995 8D952CFFFFFF lea edx, [ebp+$FFFFFF2C]

0040299B 8B9DF0FEFFFF mov ebx, [ebp+$FFFFFEF0]

004029A1 81C368040000 add ebx, $00000468

004029A7 8BC3 mov eax, ebx

|

004029A9 E866790900 call 0049A314

004029AE FF8D10FFFFFF dec dword ptr [ebp+$FFFFFF10]

004029B4 8D852CFFFFFF lea eax, [ebp+$FFFFFF2C]

004029BA BA02000000 mov edx, $00000002

|

004029BF E820790900 call 0049A2E4

004029C4 66C78504FFFFFF2402 mov word ptr [ebp+$FFFFFF04], $0224

004029CD BA15C74900 mov edx, $0049C715

004029D2 8D8528FFFFFF lea eax, [ebp+$FFFFFF28]

|

004029D8 E8F3770900 call 0049A1D0

004029DD FF8510FFFFFF inc dword ptr [ebp+$FFFFFF10]

004029E3 33C0 xor eax, eax

004029E5 898524FFFFFF mov [ebp+$FFFFFF24], eax

004029EB 8D9528FFFFFF lea edx, [ebp+$FFFFFF28]

004029F1 FF8510FFFFFF inc dword ptr [ebp+$FFFFFF10]

004029F7 8D8D24FFFFFF lea ecx, [ebp+$FFFFFF24]

004029FD 8B85F0FEFFFF mov eax, [ebp+$FFFFFEF0]

00402A03 0558040000 add eax, +$00000458

|

00402A08 E82F790900 call 0049A33C

00402A0D 8D8524FFFFFF lea eax, [ebp+$FFFFFF24]

00402A13 33D2 xor edx, edx

00402A15 899520FFFFFF mov [ebp+$FFFFFF20], edx

00402A1B 8D8D20FFFFFF lea ecx, [ebp+$FFFFFF20]

00402A21 FF8510FFFFFF inc dword ptr [ebp+$FFFFFF10]

00402A27 8B95F0FEFFFF mov edx, [ebp+$FFFFFEF0]

00402A2D 81C25C040000 add edx, $0000045C

|

00402A33 E804790900 call 0049A33C

00402A38 8D9520FFFFFF lea edx, [ebp+$FFFFFF20]

00402A3E 8BC3 mov eax, ebx

|

00402A40 E883790900 call 0049A3C8

00402A45 50 push eax

00402A46 FF8D10FFFFFF dec dword ptr [ebp+$FFFFFF10]

00402A4C 8D8520FFFFFF lea eax, [ebp+$FFFFFF20]

00402A52 BA02000000 mov edx, $00000002

|

00402A57 E888780900 call 0049A2E4

00402A5C FF8D10FFFFFF dec dword ptr [ebp+$FFFFFF10]

00402A62 8D8524FFFFFF lea eax, [ebp+$FFFFFF24]

00402A68 BA02000000 mov edx, $00000002

|

00402A6D E872780900 call 0049A2E4

00402A72 FF8D10FFFFFF dec dword ptr [ebp+$FFFFFF10]

00402A78 8D8528FFFFFF lea eax, [ebp+$FFFFFF28]

00402A7E BA02000000 mov edx, $00000002

|

00402A83 E85C780900 call 0049A2E4

00402A88 59 pop ecx

00402A89 84C9 test cl, cl

00402A8B 7457 jz 00402AE4 <------------注意这里!(E)

00402A8D 66C78504FFFFFF3002 mov word ptr [ebp+$FFFFFF04], $0230

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

您看到了上面的“ <------------注意这里!”从“(A)”到“(E)”吗?看到就好办了,它们都是jz跳转语句,跳转(A)的作用是当使用时间达到三十天时限制软件的使用,但是当我们改“0040200F 0F84D0030000 jz 004023E5 ”为“0040200F 90909090909090 nop 004023E5 ”后,运行程序时出现错误窗口,说明该程序在后面还有检查代码完整性的地方,不用说,当然是上面的“ <------------注意这里!”从“(B)”到“(E)”了,不信你试试!通通杀了。。。运行 hiew6.82:

1,0040200F 0F84D0030000 jz 004023E5 为0040200F 90909090909090 nop 004023E5

2,改00402427 0F84E6040000 jz 00402913为00402427 0F84E6040000 jz 00402913

3,改0040292A 742A jz 00402956 为0040292A 752A jz 00402956

4,改0040295E 7401 jz 00402961 为0040295E 7501 jz 00402961

5,改00402A8B 7457 jz 00402AE4 为00402A8B 7557 jz 00402AE4

整个世界-----------清静了-------------------

六,注册机:

.386

locals

jumps

.model flat,STDCALL

extrn MessageBoxA:Proc

extrn CreateFileA:Proc

extrn GetFileSizeA:Proc

extrn WriteFile:Proc

extrn SetFilePointer:Proc

extrn CloseHandle:Proc

extrn ExitProcess:Proc

extrn GetFileSize:Proc

.data

GENERIC_WRITE equ 40000000h

OPEN_EXISTING equ 3

FILE_BEGIN equ 0

cur_byte db ?

liczba dd 0

uchwyt dd ?

zmiany:

db 144,15,22,0,0,144,16,22,0,0,144,17,22,0,0,144,18,22,0,0,144,19,22,0,0,144,20,22,0,0,144,21,22,0,0,235,96,22,0,0,235,19,23,0,0,235,198,23,0,0,235,121,24,0,0,235,179,25,0,0,133,40,26,0,0,235,42,31,0,0,235,94,31,0,0,235,139,32,0,0,117,186,112,0,0,0

num_mod dd 17

program_name db 'S7KNOW.exe',0

bad_size db '',0

main_error db '',0

success db '',0

other_errors db '',0

file_size dd 822784

nazwa_pliku db 'S7KNOW.exe',0

.code

start:

push 0

push 0

push OPEN_EXISTING

push 0

push 0

push GENERIC_WRITE

push offset nazwa_pliku

call CreateFileA

cmp eax,0ffffffffh

jz error

mov uchwyt,eax

push 0

push uchwyt

call GetFileSize

cmp eax,file_size

jnz error_size

mov ecx,0

modify:

push ecx

mov esi,offset zmiany

imul eax,ecx,5

add esi,eax

lodsb

mov cur_byte,al

lodsd

push FILE_BEGIN

push 0

push eax

push uchwyt

call SetFilePointer

mov liczba,0

push 0

push offset liczba

push 1

push offset cur_byte

push uchwyt

call WriteFile

test eax,eax

jz error

pop ecx

inc ecx

cmp ecx,num_mod

jne modify

push 0

push offset program_name

push offset success

push 0

call MessageBoxA

end_:

push uchwyt

call CloseHandle

push 0

call ExitProcess

error_size:

push 0

push offset main_error

push offset other_errors

push 0

call MessageBoxA

jmp end_

error:

push 0

push offset main_error

push offset bad_size

push 0

call MessageBoxA

jmp end_

end start

七,收工!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~转载请保持完整性~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

作者:飞龙狗狗 邮箱:bluearc_arc@hotmail.com QQ:40116000 (出处:嬴政天下整理收藏)

相关文章:

·关于注册Flag在破解中的应用

·从轻松试卷 v4.03 的破解看 r fl z 的妙用

·破解圣经之------滚瓜烂熟篇

·破解API Spy for Windows 95/98/NT/2000

·chm帮助编辑器v2.6 注册码破解详谈之一*脱壳篇*

·破解NetAlert v2 [热点] 指导如何自动脱壳!!

·破解的理由

·对于破解的一些想法

·Audio Converter 3.0 破解要点

·破解 Matcom 4.0 for BC

相关软件:

·美萍安全卫士密码破解器 3.0+

·网文快爪 v1.0 破解版

·坏猫网页编辑 v2.0完整版破解文件

·pakmarker1.0破解版

·IE Plus!破解版

·邮件服务器2.6+破解版

·BadCopy99 V2.0 破解文件

·登录奇兵 3.01破解文件

·易思多媒体网络教室-4用户演示版破解文件

·网络三国智能机器人1.0.0.101版破解

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史