CaptainChen

你想要的Navicat(Windows版,32_64)全系列产品patch方法

注:此博文为我的好友所写,全文授权发在本博客,其个人CSDN博客地址为:pijianzhirui,欢迎前去查看更多技术干货博文。对于思杰马克丁这家流氓软件公司,本人也是深恶痛绝,真的是“从未见过有如此厚颜无耻之人”,希望看到本博文的人,认真了解一下该公司的背景,尤其是在购买正版软件时擦亮眼睛,不要去这家公司购买,避免受害。以下是授权转载全文:


你想要的Navicat(Windows版,32_64)全系列产品patch方法

此文是为了向大流氓思杰马克丁示威!
请大家看清思杰马克丁的狰狞面目:
https://bbs.kafan.cn/thread-2091302-1-1.html
https://bbs.kafan.cn/thread-2095728-1-1.html

I D A 出征,寸草都不生。
马克丁不死,圣战绝不止!

建议你将本文下载下来,并进行转发和搬运,因为思杰马克丁会疯狂地贼喊捉贼要求删文,我们要团结起来,对抗流氓!

以下是Navicat(Windows版,32_64)全系列patch方法,软件升级后,这些地址都会变化,但是关键修改点(特征代码)相对于入口点(Entry Point,EP)的偏移量却基本不变,所以,找到主程序的入口点后,再加上偏移量(比如0x353,0x3CC,0x519,0x5E3),应该能找到特征代码。

32 bit程序的特征代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
01719B6B A1 E4 A0 74 01            mov     eax, off_174A0E4
01719B70 80 38 27 cmp byte ptr [eax], 27h
01719B73(75 09) jnz short loc_1719B7E
01719B75 33 C0 xor eax, eax
01719B77 E8 48 FB F9 FF call sub_16B96C4
01719B7C EB 62 jmp short loc_1719BE0
······
01719BE0 A1 E4 A0 74 01 mov eax, off_174A0E4
01719BE5 0F B6 00 movzx eax, byte ptr [eax]
01719BE8 04 D8 add al, 0D8h
01719BEA 2C 03 sub al, 3
01719BEC(73 0C) jnb short loc_1719BFA
01719BEE 8B 03 mov eax, [ebx]
01719BF0 E8 0B 37 F3 FE call sub_64D300
01719BF5 E9 90 01 00 00 jmp loc_1719D8A

64 bit程序的特征代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
021066BF 48 8B 05 8A 21 22 00      mov     rax, cs:off_2328850
021066C6 80 38 27 cmp byte ptr [rax], 27h
021066C9(75 0D) jnz short loc_21066D8
021066CB 48 33 C9 xor rcx, rcx
021066CE E8 2D C6 F5 FF call sub_2062D00
021066D3 E9 AA 00 00 00 jmp loc_2106782
······
02106782 48 8B 05 C7 20 22 00 mov rax, cs:off_2328850
02106789 48 0F B6 08 movzx rcx, byte ptr [rax]
0210678D 80 E9 28 sub cl, 28h
02106790 80 F9 07 cmp cl, 7
02106793(77 13) ja short loc_21067A8
02106795 B0 01 mov al, 1
02106797 D3 E0 shl eax, cl
02106799 48 0F B6 0D 97 03 00 00 movzx rcx, cs:byte_2106B38
021067A1 84 C8 test al, cl
021067A3 0F 95 C0 setnz al
021067A6 EB 03 jmp short loc_21067AB

Navicat 12 for MariaDB(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):016FA7A0
MD5(Original):D9FBC3348E9B2964AF75A7F88BA9C571
MD5(Patched ):4FF79A3CA2819B36A33A4DABD6E8B0FD
(EP+353)016FAAF3:75 09 -> 90 90
jnz short loc_16FAAFE -> nop nop
(EP+3CC)016FAB6C:73 0C -> EB 0C
jnb short loc_16FAB7A -> jmp short loc_16FAB7A

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):020E1AD0
MD5(Original):68DE134E513A1DCF88E6169A880F41BD
MD5(Patched ):164B8C728E512BB3318D806D45C250FB
(EP+519)020E1FE9:75 0D -> 90 90
jnz short loc_20E1FF8 -> nop nop
(EP+5E3)020E20B3:77 13 -> EB 13
ja short loc_20E20C8 -> jmp short loc_20E20C8

Navicat 12 for MySQL(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):01719820
MD5(Original):AF5E037E1D5C874D5E99AA7879D5BA21
MD5(Patched ):71C8D1512630DE11B69A1C3FFEF282EB
(EP+353)01719B73:75 09 -> 90 90
jnz short loc_1719B7E -> nop nop
(EP+3CC)01719BEC:73 0C -> EB 0C
jnb short loc_1719BFA -> jmp short loc_1719BFA

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):021061B0
MD5(Original):FAF83ACB83576FABE80F5269F0FB6F4F
MD5(Patched ):0FBF57E1BC8FFB6F34F4E4E0A2552535
(EP+519)021066C9:75 0D -> 90 90
jnz short loc_21066D8 -> nop nop
(EP+5E3)02106793:77 13 -> EB 13
ja short loc_21067A8 -> jmp short loc_21067A8

Navicat 12 for Oracle(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):0174B7CC
MD5(Original):F179BCCC8016B8A252A4BFA7102CBE89
MD5(Patched ):903BAEA3AC2395438955FAEE6D0F949C
(EP+353)0174BB1F:75 09 -> 90 90
jnz short loc_174BB2A -> nop nop
(EP+3CC)0174BB98:73 0C -> EB 0C
jnb short loc_174BBA6 -> jmp short loc_174BBA6

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):0214EDF0
MD5(Original):54083319E2A5530B1551E61A336E8E2E
MD5(Patched ):9F3A8BA574915A56242578C1861CD4EA
(EP+519)0214F309:75 0D -> 90 90
jnz short loc_214F318 -> nop nop
(EP+5E3)0214F3D3:77 13 -> EB 13
ja short loc_214F3E8 -> jmp short loc_214F3E8

Navicat 12 for PostgreSQL(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):01741790
MD5(Original):81F1E4454E410731A05012901781DC02
MD5(Patched ):037F2556450F4779F99F79F569BC702C
(EP+353)01741AE3:75 09 -> 90 90
jnz short loc_1741AEE -> nop nop
(EP+3CC)01741B5C:73 0C -> EB 0C
jnb short loc_1741B6A -> jmp short loc_1741B6A

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):02142A00
MD5(Original):789B2F248460F6B30FC392D7ED7A3304
MD5(Patched ):14CDAA7C6773C5CD5E0CFC1C069900E4
(EP+519)02142F19:75 0D -> 90 90
jnz short loc_2142F28 -> nop nop
(EP+5E3)02142FE3:77 13 -> EB 13
ja short loc_2142FF8 -> jmp short loc_2142FF8

Navicat 12 for SQL Server(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):01789790
MD5(Original):B724CD8420B702C22D16C65F50DAA94B
MD5(Patched ):AF505E2BBE682BEBBD69E6E261BF61A7
(EP+353)01789AE3:75 09 -> 90 90
jnz short loc_1789AEE -> nop nop
(EP+3CC)01789B5C:73 0C -> EB 0C
jnb short loc_1789B6A -> jmp short loc_1789B6A

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):021A6EA0
MD5(Original):B91BF2106E0A4F6385F0D1E74815FC62
MD5(Patched ):B916E5A9C8CC3B7B3136FE76DCB3E8D7
(EP+519)021A73B9:75 0D -> 90 90
jnz short loc_21A73C8 -> nop nop
(EP+5E3)021A7483:77 13 -> EB 13
ja short loc_21A7498 -> jmp short loc_21A7498

Navicat 12 for SQLite(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):016BE790
MD5(Original):E3DD10FBC882149DD2D0A02E2DB24349
MD5(Patched ):02AFB1D7527A9B1036D77AA54C1CC64A
(EP+353)016BEAE3:75 09 -> 90 90
jnz short loc_16BEAEE -> nop nop
(EP+3CC)016BEB5C:73 0C -> EB 0C
jnb short loc_16BEB6A -> jmp short loc_16BEB6A

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):02093F30
MD5(Original):84D59697EFAEBF23E772F274180DDC19
MD5(Patched ):C0CEEEED75AC098D1DDEC50EFCF38851
(EP+519)02094449:75 0D -> 90 90
jnz short loc_2094458 -> nop nop
(EP+5E3)02094513:77 13 -> EB 13
ja short loc_2094528 -> jmp short loc_2094528

Navicat Data Modeler(modeler.exe,2.1.12)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):00DBECA4
MD5(Original):BBF94F6FF5C22269F1D7179757762E9D
MD5(Patched ):01F807AD68E8393E3A20639DE36E3603
(EP+24D)00DBEEF1:75 09 -> 90 90
jnz short loc_DBEEFC -> nop nop
(EP+2BC)00DBEF60:73 0C -> EB 0C
jnb short loc_DBEF6E -> jmp short loc_DBEF6E

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):012E0700
MD5(Original):328CAD931B7CF098A0CF9F500C9A062A
MD5(Patched ):1D9DBFFAD5E19E85C3B3B57D9A73216D
(EP+37D)012E0A7D:75 0D -> 90 90
jnz short loc_12E0A8C -> nop nop
(EP+43B)012E0B3B:77 13 -> EB 13
ja short loc_12E0B50 -> jmp short loc_12E0B50

Navicat Premium 12(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):0191D85C
MD5(Original):93350440DEC6314EDFB4E6D276279538
MD5(Patched ):C5522ADCDD893337102FD72ABE13BD47
(EP+353)0191DBAF:75 09 -> 90 90
jnz short loc_191DBBA -> nop nop
(EP+3CC)0191DC28:73 0C -> EB 0C
jnb short loc_191DC36 -> jmp short loc_191DC36

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):023CA180
MD5(Original):ECB007645786E37DA38A71A12763321E
MD5(Patched ):1BE752EA8C3B89F8DFDAF63A3A5A13E3
(EP+519)023CA699:75 0D -> 90 90
jnz short loc_23CA6A8 -> nop nop
(EP+5F9)023CA779:77 1E -> EB 1E
ja short loc_23CA799 -> jmp short loc_23CA799

Navicat Premium Essentials 12(navicat.exe,12.0.18)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):01683A6C
MD5(Original):BC738D6BC658FB212517F7B4955A8E4C
MD5(Patched ):B97720ABDCFB28CC5CD5B3C86210F398
(EP+34C)01683DB8:75 09 -> 90 90
jnz short loc_1683DC3 -> jz short loc_1683DC3
(EP+3C5)01683E31:73 0C -> EB 0C
jnb short loc_1683E3F -> jmp short loc_1683E3F

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):01FEBA40
MD5(Original):F0328566A14527B954873E54EF57474D
MD5(Patched ):1053539FAB18252842AF3707319F24FE
(EP+50C)01FEBF4C:75 0D -> 90 90
jnz short loc_1FEBF5B -> nop nop
(EP+5EC)01FEC02C:77 1E -> EB 1E
ja short loc_1FEC04C -> jmp short loc_1FEC04C

Navicat Report Viewer(rviewer.exe,3.2.8)
32 bit:

1
2
3
4
5
6
7
Entry Point(EP):00F207C0
MD5(Original):BC3138EC4B1D91529459CA78BD753A95
MD5(Patched ):86E75214EC06763F0AA492B70245CA09
(EP+28B)00F20A4B:75 09 -> 90 90
jnz short loc_F20A56 -> nop nop
(EP+2FA)00F20ABA:73 0C -> EB 0C
jnb short loc_F20AC8 -> jmp short loc_F20AC8

64 bit:

1
2
3
4
5
6
7
Entry Point(EP):014C5DD0
MD5(Original):1F8DBAE152B28FCDD278B6C7EE99B05C
MD5(Patched ):1B26B2CD35802EECE257DD302A8341B7
(EP+409)014C61D9:75 0D -> 90 90
jnz short loc_14C61E8 -> nop nop
(EP+4C7)014C6297:77 13 -> EB 13
ja short loc_14C62AC -> jmp short loc_14C62AC

觉得文章不错,就赏我一杯咖啡钱吧~