首页 实用电脑技术1200例_013

实用电脑技术1200例_013

举报
开通vip

实用电脑技术1200例_013 破解技术实例013_adbin1.2() 程式猎人 简介:这个是一个上网加速的软件,它可以将你访问的网站时,可以将广 告进行屏障掉,所 以这样就可以增加的上网速度。 追踪:RN:01234567 对于追踪这个软件,可是花了我几天的时间才将它追踪出来。在前几天 ,没有将它追踪 出来,因为这个软件在破解过程中的确有一定的难度,所以那几天没有将 它追踪出来。 但是昨天我又将它拿出来进行破解,因为我昨天有一种不死不归的感觉。 终于将这个软件给 ...

实用电脑技术1200例_013
破解技术实例013_adbin1.2() 程式猎人 简介:这个是一个上网加速的软件,它可以将你访问的网站时,可以将广 告进行屏障掉,所 以这样就可以增加的上网速度。 追踪:RN:01234567 对于追踪这个软件,可是花了我几天的时间才将它追踪出来。在前几天 ,没有将它追踪 出来,因为这个软件在破解过程中的确有一定的难度,所以那几天没有将 它追踪出来。 但是昨天我又将它拿出来进行破解,因为我昨天有一种不死不归的感觉。 终于将这个软件给 破解出来了,那么现在再想一下,这个软件如果要定位的话,它应当属于 中上水平。现在就 来向大家介绍如何在前几天没有将它追踪出来的情况。 :00402676 E8D6080000 call 00402F51 :0040267B A180564100 mov eax, dword ptr [00415680] :00402680 53 push ebx * Possible StringData Ref from Code Obj ->"VWhxVA" | :00402681 6852734000 push 00407352 :00402686 57 push edi * Possible Reference to Dialog: DialogID_006C | :00402687 6A6C push 0000006C :00402689 50 push eax :0040268A E883F1FFFF call 00401812 :0040268F 83F801 cmp eax, 00000001 :00402692 0F85A8000000 jne 00402740 :00402698 8D45A4 lea eax, dword ptr [ebp-5C] :0040269B 50 push eax :0040269C E8DF870000 call 0040AE80 :004026A1 83F80A cmp eax, 0000000A **** :004026A4 59 pop ecx :004026A5 7225 jb 004026CC :004026A7 8D45A4 lea eax, dword ptr [ebp-5C] :004026AA 50 push eax :004026AB E8D0870000 call 0040AE80 :004026B0 83F814 cmp eax, 00000014 *** :004026B3 59 pop ecx :004026B4 7716 ja 004026CC :004026B6 8D45A4 lea eax, dword ptr [ebp-5C] :004026B9 50 push eax * Reference To: ABKernel.SetLic, Ord:001Dh | :004026BA FF1500104100 Call dword ptr [00411000] :004026C0 6A01 push 00000001 * Reference To: ABKernel.SetEnabled, Ord:001Ch | :004026C2 FF151C104100 Call dword ptr [0041101C] :004026C8 59 pop ecx * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004025D4(U) | :004026C9 59 pop ecx :004026CA EB74 jmp 00402740 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:004026A5(C), :004026B4(C) | :004026CC 53 push ebx * Possible StringData Ref from Data Obj ->"Adbin" | :004026CD 6890414100 push 00414190 * Possible StringData Ref from Data Obj ->"The licence code you entered has " ->"been generated illegally." | :004026D2 6870424100 push 00414270 :004026D7 FFD6 call esi 现在我们当然是首先按正常的破解过程来破解它,这个软件在我刚刚破解 时就发现了它是 一个比较特殊的注册过程。在上面就是这个软件的输入注册码后所进行的 工作。在这里我们 将能得到什么呢?如果按照正常的注册比较过程的话,它在上面应当有比 较的地方,但是在 这里我们将无法得到比较的地方,仅能得到的是比较你所输入注册码的位 数值,在这里我们 可以轻松的得到这个软件所要求的位数,输入的注册码一定要满足 A(H)<=RN<=14(H),如果 你没有满足上面的要求,程序会提示你输入的注册码不正确。我现在输入 的RN:0123456789 后,程序没有出现提示了。但是我追踪后发现在这里它也仅仅是比较位数 ,没有进行注册码 的比较。那么这个软件就成了在开始时比较注册码方式的注册方法了。这 种软件的破解关键 大于找到软件在那里进行比较的地方。于是就使用W32DASM进行反汇编 ,想要找到关键的比 较地方,如果要让我这么轻松就找到了,那么这个软件的难度也就无法称 为中上水平了。 在W中发现了 * Possible StringData Ref from Data Obj ->"Software\Paw-Print\Adbin" 程序使用注册表选项,查找相应的选项,发现了下面比较敏感的选项。 RegistrationEval:VZYmhL4l39KA RegistrationKey:0123456789 以我个人的经验来说,只要发现这个关键的地方就可以成功一半了。这样 的软件通常在程 序中使用相应的注册键值来进行运算。我于是就在W中对 RegistrationKey进行查找,大家一 定会想到了这个结果就是没有查找到。那么我没有查找到这个键值,我可 以查找到你使用读 取这个键的函数,我查找读取注册表的函数,但是它没有什么用处,它也无 法将引导我向成 功的彼岸,没有办法了。以上就是我前几天没有将这个软件破解出来的过 程。昨天我想再尝 试一下破解这个软件,这回我得到使用前几天没有用过方法对它进行破解 。 现在我们再说一些破解方面的事情,对于那种使用先输入注册码,再重新 启动后进行比较 的注册过程,对于我们这些破解者来说,破解它们比破解那种直接进行注 册码比较的软件增 加了一定的难度,通常就是这点难度使用那些初学者或者是掌握了一定的 破解方法和技艺的 人也不好破解。对于这种软件的破解关键就是找到程序在启动时,在那个 函数中对我们输入 的注册码进行比较的。我们破解者面对是几千个甚至是几万个函数,我们 将如何找到它的比 较地方呢。对于不同的软件应当有着不同的破解方法,但是它有着几个相 似的破解方法。那 么我在这里使用的就是过期的破解方法。 大家现在向上看,你们会发现在注册表中不仅有RegistrationKey这个键值 ,而且还有Reg istrationEval这个键值,那么它有什么用处呢。我不是 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 者,所以我也 不知道,但是破 解经验告诉我,这个键值一定与注册有关,具体什么关系我也只有试一试 才知道。于是我将 这个键值中的VZYmhL4l39KA设为空,再重新启动软件,现在软件告诉你 它已经过期了。那么 这就说明它的值同注册肯定有关系,我又将它copy回注册表中,重新启动 软件,它没有出现 提示过期。现在我就将这个作为我向它发起攻击的突破点。 现在调出trw,用它对这个软件进行追踪。 :0040B4A6 FF1504124100 Call dword ptr [00411204] :0040B4AC 50 push eax :0040B4AD E8FF7AFFFF call 00402FB1 <-出错,进入 :0040B4B2 8945A0 mov dword ptr [ebp-60], eax :0040B4B5 50 push eax 在指出的地方出错,通常我们使用这种方法进行追踪的关键是找到能不能 跳过此call的地 方,向上看没有发现,于是就进入call中。下同: :00403035 8BCB mov ecx, ebx :00403037 E8A0180000 call 004048DC <-出错,进入 :0040303C A10C584100 mov eax, dword ptr [0041580C] :00404921 8BCF mov ecx, edi :00404923 E84BC9FFFF call 00401273 <-出错,进入 :004012C9 8D8D4CFFFFFF lea ecx, dword ptr [ebp+FFFFFF4C] :004012CF E824010000 call 004013F8 <-出错,进入 :0040152B FFD7 call edi * Reference To: ABKernel.GetStat, Ord:0015h :0040152D FF1514104100 Call dword ptr [00411014] <-出错,进入 :00401533 83F801 cmp eax, 00000001 :00401536 7405 je 0040153D 我来到这里就出现地址的变化,因为在通常我们的地址是004?????,而现 在进入到00C??? ??,这个地址中。我也是现在才明白,这时进入了程序中调用的dll程序了 。那么它进入那 个dll中,上面就有答案, * Reference To: ABKernel.GetStat, Ord:0015h 这个就是关键,它一定进入ABKernel.dll中,因为在W中可以发现程序有 这样一个dll文件 。因为我使用Nu来追踪,所以当时不知道它进入了那个dll,我只知道找到 比较的地方,,E xported fn(): GetStat - Ord:0016h :10003088 E851E0FFFF call 100010DE <-出错,进入 :1000308D A158160110 mov eax, dword ptr [10011658] :10003092 C3 ret 进入call中如下: :100010DE E85E1E0000 call 10002F41 :100010E3 85C0 test eax, eax :100010E5 740E je 100010F5 :100010E7 83251416011000 and dword ptr [10011614], 00000000 :100010EE 83253416011000 and dword ptr [10011634], 00000000 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:100010E5(C) | :100010F5 E900000000 jmp 100010FA * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:100010F5(U) | :100010FA 833D3416011000 cmp dword ptr [10011634], 00000000 :10001101 750A jne 1000110D :10001103 B920160110 mov ecx, 10011620 :10001108 E8E3410000 call 100052F0 <-出错,进入 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001101(C) | :1000110D 833D1416011000 cmp dword ptr [10011614], 00000000 :10001114 750A jne 10001120 :10001116 B900160110 mov ecx, 10011600 :1000111B E8D0410000 call 100052F0 <-出错,进入 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001114(C) | :10001120 833D3416011000 cmp dword ptr [10011634], 00000000 :10001127 740D je 10001136 :10001129 833D1416011000 cmp dword ptr [10011614], 00000000 :10001130 7404 je 10001136 :10001132 33C0 xor eax, eax :10001134 EB03 jmp 10001139 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:10001127(C), :10001130(C) | :10001136 6A01 push 00000001 :10001138 58 pop eax * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001134(U) | :10001139 50 push eax :1000113A E89B1F0000 call 100030DA :1000113F 59 pop ecx :10001140 C3 ret 当我追踪到上面时,我终于对自己说,这个软件可能要破解成功了。因为 现在我已经能够 看到胜利的曙光了。上面有push 01;pop eax这两个命令,所以它有可能 表示注册成功。现 在的工作还是进入call中 :100052F0 B8D6D50010 mov eax, 1000D5D6 :100052F5 E8EA150000 call 100068E4 :100052FA 81EC10080000 sub esp, 00000810 :10005300 56 push esi :10005301 8BF1 mov esi, ecx :10005303 57 push edi :10005304 8975E8 mov dword ptr [ebp-18], esi :10005307 833E00 cmp dword ptr [esi], 00000000 :10005310 6A01 push 00000001 :10005312 5F pop edi :10005313 6A00 push 00000000 :10005315 893E mov dword ptr [esi], edi :10005317 E8B0FCFFFF call 10004FCC <-出错,进入 :1000531C 85C0 test eax, eax :1000531E 59 pop ecx :10005325 53 push ebx 上面有一个比较的地方,也是这个软件出错的地方,故进入call中。 :1000516C 8D45C0 lea eax, dword ptr [ebp-40] <-0123456789 :1000516F 50 push eax :10005170 E83B100000 call 100061B0 :10005175 83F80A cmp eax, 0000000A :10005178 59 pop ecx :10005179 7213 jb 1000518E :1000517B 8D45C0 lea eax, dword ptr [ebp-40] :1000517E 50 push eax :1000517F E82C100000 call 100061B0 :10005184 83F814 cmp eax, 00000014 *** :10005187 59 pop ecx :10005188 0F86AC000000 jbe 1000523A * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10005179(C) | :1000518E 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"Adbin Licence" | :10005190 6830070110 push 10010730 * Possible StringData Ref from Data Obj ->"This version of Adbin from Paw-Print " ->"Software has been tampered with." | :10005195 6888060110 push 10010688 * Reference To: USER32.GetActiveWindow, Ord:00DDh | :1000519A FF1584E10010 Call dword ptr [1000E184] :100051A0 50 push eax * Reference To: USER32.MessageBoxA, Ord:01BEh | :100051A1 FF1580E10010 Call dword ptr [1000E180] :100051A7 C7055816011004000000 mov dword ptr [10011658], 00000004 :100051B1 EB3D jmp 100051F0 当我来这里我终于对自己说,成功一半了,为什么?你们看到没有在这里 我们已经可以看 到我输入的注册码了,它开始检查注册码的位数了。同我们在输入注册码 时的一样,这就说 明我已经离比较的地方不远了。向下我就应当可以发现比较的地方。 :1000523A 6A01 push 00000001 :1000523C 8D45C0 lea eax, dword ptr [ebp-40] :1000523F 5F pop edi :10005240 57 push edi :10005241 50 push eax <-RN:0123456789 :10005242 E8A9FCFFFF call 10004EF0 :10005247 59 pop ecx :10005248 59 pop ecx :10005249 33C9 xor ecx, ecx :1000524B 3D85050000 cmp eax, 00000585 *** :10005250 0F9DC1 setnl cl :10005253 41 inc ecx :10005254 8BC1 mov eax, ecx :10005256 3BC7 cmp eax, edi :10005258 A358160110 mov dword ptr [10011658], eax :1000525D 0F8586000000 jne 100052E9 :10005263 6A03 push 00000003 到达这里我就知道已经到达这个软件的比较核心了。因为这里有所有我想 得到的东西,一 是RN,二是比较命令。现在的任务就是找到实际注册码了,进入call中: :10004EF0 55 push ebp :10004EF1 8BEC mov ebp, esp :10004EF3 83EC28 sub esp, 00000028 :10004EF6 834DF8FF or dword ptr [ebp-08], FFFFFFFF :10004EFA 53 push ebx :10004EFB 56 push esi :10004EFC 57 push edi :10004EFD 8B7D08 mov edi, dword ptr [ebp+08] :10004F00 33DB xor ebx, ebx :10004F02 895DFC mov dword ptr [ebp-04], ebx :10004F05 8A07 mov al, byte ptr [edi] :10004F07 84C0 test al, al :10004F09 747A je 10004F85 * Possible StringData Ref from Data Obj ->"n61O0rRxdkVHt5ZwqYUzoNDmCybcghfaMLj4liT8pQ3J2I" ->"vWP9euS7BKFGEAXs" | :10004F0B BEB0040110 mov esi, 100104B0 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10004F83(C) | :10004F10 0FBEC0 movsx eax, al :10004F13 50 push eax :10004F14 56 push esi :10004F15 E856130000 call 10006270 :10004F1A 59 pop ecx :10004F1B 85C0 test eax, eax :10004F1D 59 pop ecx :10004F1E 0F8490000000 je 10004FB4 :10004F24 2BC3 sub eax, ebx :10004F26 2BC6 sub eax, esi :10004F28 48 dec eax :10004F29 8BC8 mov ecx, eax :10004F2B 7903 jns 10004F30 :10004F2D 83C13E add ecx, 0000003E * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10004F2B(C) | :10004F30 8D5C0B01 lea ebx, dword ptr [ebx+ecx+01] :10004F34 83FB3E cmp ebx, 0000003E :10004F37 7C0A jl 10004F43 :10004F39 8BC3 mov eax, ebx :10004F3B 6A3E push 0000003E :10004F3D 99 cdq :10004F3E 5B pop ebx :10004F3F F7FB idiv ebx :10004F41 8BDA mov ebx, edx * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10004F37(C) | :10004F43 837DF8FF cmp dword ptr [ebp-08], FFFFFFFF :10004F47 7505 jne 10004F4E :10004F49 894DF8 mov dword ptr [ebp-08], ecx :10004F4C EB10 jmp 10004F5E * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10004F47(C) | :10004F4E 83F907 cmp ecx, 00000007 :10004F51 7F61 jg 10004FB4 :10004F53 8B45FC mov eax, dword ptr [ebp-04] :10004F56 6BC007 imul eax, 00000007 :10004F59 03C1 add eax, ecx :10004F5B 8945FC mov dword ptr [ebp-04], eax * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10004F4C(U) |
本文档为【实用电脑技术1200例_013】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_554469
暂无简介~
格式:pdf
大小:131KB
软件:PDF阅读器
页数:0
分类:文学
上传时间:2012-06-18
浏览量:2