|
|
|
[求助]高手指教下ACProtect v1.41 -> Risco Software Inc
楼主查错壳了吧! 第二张图的入口点明白无误地显示着呢: [FONT="Courier"]00BBB816: E81D000000 call 000BBB838 00BBB81B: 53 61 66 65.6E 67 69 6E.65 20 50 72.6F 74 65 63 Safengine Protec 00BBB82B: 74 6F 72 20.76 32 2E 31.2E 39 2E 30.00 EB C0 8D tor v2.1.9.0[/FONT] 5楼提醒也没意识到?单凭区段名也能大致确定是这个。 要是将标题改为谢耳朵(Sheldon Lee Cooper/Shielden),可能关注的人会多一些。 可惜这个壳我不懂,帮不了你。 找找相关的帖子吧,看着不忍。 |
|
[求助]一个Aspack壳,ImportREC无法修复导入表。
OD载入目标会退出! 感谢amulin的提示,后来发现:1) 在OD的调试选项“异常”标签里将忽略全部勾选;2) StrongOD选项里不要勾选"!*Kill BadPE Bug"。就可以正常载入并停在ASPack的入口处。 用“ESP定律”脱壳,在OEP处,ImportREC确实不可用,可能有Bug。改用"Scylla x86 v0.9.1"可以,但不准确。 Scylla的"IAT Info"里OEP填入006E4493,点"IAT Autosearch"按钮显示: IAT found at VA 00D81000 RVA 00981000 Size 0x31F0 (12784) 点"Get Imports"按钮得到: IAT parsing finished, found 3160 valid APIs, missed 0 APIs 在OD里检查了一下,不是全部。于是手工在VA填入00D81000,Size填入00005B6C,再点"Get Imports"后得到完整的结果: IAT parsing finished, found 5793 valid APIs, missed 0 APIs 看来Scylla也不靠谱,其它版本未试。后来干脆不用工具,手工脱。 脱出来的结果与“原版”非常接近。因为ASPack压缩时有些东西未保存,不可能做到与“原版”完全一致。主要处理了导入表、重定位表、TLS和修补了资源数据,这样把ASPack的东西完全去掉了。 Einsbing大概是用某个工具脱的,从区段名可见到"UnPackEr By LoveBoom"字样。 但不够“完美”,有以下几个问题:1) 因为没有修补资源区段,ASPack添加的两个区段只去掉了一个。2) 重定位表目录没有修正。3) TLS目录没有修正,也造成不能去掉ASPack区段。 比较脱掉的“破解版”与“原版”的代码部分,有以下差异: [FONT="Courier"]Org. vs Unpacked ================ 1) 001B7018~001B701C(File offset) Org.: 005B8018: 8B442410 mov eax,[esp][010] <- 005B801C: 5F pop edi <- 005B801D: 5E pop esi 005B801E: 5B pop ebx 005B801F: 8BE5 mov esp,ebp 005B8021: 5D pop ebp 005B8022: C21400 retn 00014 Cracked: 005B8018: E9B08A7C00 jmp 000D80ACD 2) 004A8991~004A8996 008A9991: 6683F8FF cmp ax,-1 <- 008A9995: 750A jnz 0008A99A1 <- 008A9991: E947714D00 jmp 000D80ADD 008A9996: 90 nop 3) 004A89AB~004A89AF 008A99AB: 6685C0 test ax,ax <- 008A99AE: 7558 jnz 0008A9A08 <- 008A99AB: E93B714D00 jmp 000D80AEB 4) 0097FACD~0097FAF7 Appended codes in the cracked/unpacked 00D80ACD: B855020000 mov eax,000000255 00D80AD2: 5F pop edi 00D80AD3: 5E pop esi 00D80AD4: 5B pop ebx 00D80AD5: 8BE5 mov esp,ebp 00D80AD7: 5D pop ebp 00D80AD8: C21400 retn 00014 00D80ADB: 0000 add [eax],al 00D80ADD: 66B80100 mov ax,1 00D80AE1: 6683F8FF cmp ax,-1 00D80AE5: E9B78EB2FF jmp 0008A99A1 00D80AEA: 90 nop 00D80AEB: 66B80100 mov ax,1 00D80AEF: 6685C0 test ax,ax 00D80AF2: E9118FB2FF jmp 0008A9A08 00D80AF7: 90 nop[/FONT] 前三处都改为跳向第四处(代码段末尾)添加的对应地址,应该是关键跳。 但似乎还差东西,无论运行“原版”或“破解版”(脱或未脱),都报: License Server: Server data is not registered in the system. 不再深究了,感兴趣的可参考softworm近十年前的文章“破解Materialise Magics RP 9.0 - 看雪论坛2002~2004年镜像”。 |
|
[求助]ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov 脱壳,求大牛
两天的时间不会浪费,曾经一个目标我断断续续地弄了几个月才搞定,这期间学了不少东西。 作为提示,下面给出"EF Find 7.30"的关键位置,抱歉我只有这个版本的笔记。 [FONT="Courier"]004282B3 85ED TEST EBP, EBP ; pointer to EFFIN.LIC content 004282B5 74 11 JE SHORT 004282C8 004282B7 8B15 C8F25A00 MOV EDX, [5AF2C8] 004282BD 89AA 8C060000 MOV [EDX+68C], EBP 004282C3 E8 4888FFFF CALL 00420B10 ...[/FONT] 调用00420B10为"Reg.ID."解码代码及黑名单比对: [FONT="Courier"]00420B10 56 PUSH ESI 00420B11 8B35 C8F25A00 MOV ESI, [5AF2C8] 00420B17 81C6 E8060000 ADD ESI, 6E8 ; pointer to encoded/decoded Reg.ID. 00420B1D 74 40 JE SHORT 00420B5F 00420B1F 53 PUSH EBX 00420B20 33C9 XOR ECX, ECX 00420B22 57 PUSH EDI 00420B23 8D79 39 LEA EDI, [ECX+39] 00420B26 8A0431 MOV AL, [ECX+ESI] 00420B29 3C 40 CMP AL, 40 00420B2B 73 16 JNB SHORT 00420B43 00420B2D 8BD1 MOV EDX, ECX 00420B2F 81E2 03000080 AND EDX, 80000003 00420B35 79 05 JNS SHORT 00420B3C 00420B37 4A DEC EDX 00420B38 83CA FC OR EDX, FFFFFFFC 00420B3B 42 INC EDX 00420B3C 2AC2 SUB AL, DL 00420B3E 880431 MOV [ECX+ESI], AL 00420B41 EB 14 JMP SHORT 00420B57 00420B43 0FB6C0 MOVZX EAX, AL 00420B46 83E8 41 SUB EAX, 41 00420B49 99 CDQ 00420B4A BB 0A000000 MOV EBX, 0A 00420B4F F7FB IDIV EBX 00420B51 80C2 30 ADD DL, 30 00420B54 881431 MOV [ECX+ESI], DL 00420B57 41 INC ECX 00420B58 83EF 01 SUB EDI, 1 00420B5B 75 C9 JNZ SHORT 00420B26 00420B5D 5F POP EDI 00420B5E 5B POP EBX 00420B5F A1 C8F25A00 MOV EAX, [5AF2C8] 00420B64 05 12050000 ADD EAX, 512 ; pointer to Serial No. 00420B69 50 PUSH EAX 00420B6A E8 61D6FFFF CALL 0041E1D0 ; blacklist checking 00420B6F 83C4 04 ADD ESP, 4 ; ret EAX=00000001 if passed 00420B72 5E POP ESI 00420B73 C3 RETN[/FONT] 整个解码代码属于简单的变换,不涉及密码学的内容,Keygen需要根据这段代码逆回去写编码代码。 调用0041E1D0为将当前注册码与两张黑名单比较,示例序列号是我伪造的,当然不在黑名单中。 前帖示例"EFFIN.LIC"里的"Reg.ID."解码前: BLC842C95RI;CM48FMBLBM3;814L2M2L3KA5B1653O:8AN3R4:AR61;7F "Reg.ID."解码后: 112541265788222552111218802122013002104234850317490760945 请注意它全为数字,前面说过序列号(Serial No.)应该是包含在里面的。现在这串数字没有与序列号对应的部分,所以这个"Reg.ID."注册失败。 这个位置非常重要!从这里开始监视对这串数字的读取,就可以顺利将你引导到各校验和的验证、注册码的比对的关键地方,从而搞清楚这串数字各字段的具体含义。 如果将整个walkthrough帖出来,游戏就没法玩了!对真正想学习逆向的人也无益处,所以抱歉只能公开这些。 |
|
[求助]ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov 脱壳,求大牛
"ASProtect 1.23 RC4"因为太古老,人们已经不玩这个了! 看了一下楼主的目标,efsoftware的"EF Find v5.30",又下载了其最近的版本"EF Find v7.30"(发布日期:2013-09-30,仍然用的这个古典壳),感觉它的注册算法有点意思,简单说说。 "EF Find"是一款搜索软件,用于搜索7-Zip,ACE,ARC,ARJ,BZIP2,CAB,CPIO,GZIP,IMG,ISO (ISO9660),LHA,RAR,RPM,SFX,SQX,TAR,TGZ,ZIP和ZOO压缩文件里的文件、文本和正则表达式。 试用版的限制: . 30天试用 . 只显示第一个匹配文件名;其它文件名以"-------.---"替代 . NAG窗 先回答楼主的问题。 楼主已经注意到,ASProtect使用"SE Handler"来实现跳转,或者说摆脱新手的单步跟踪(其实也谈不上)。 引发异常处有(以EF Find v5.30为例): #1: B841A4 XOR [EAX], EAX B841A6 JMP SHORT 00B841A9 #2: B83AC1 XOR [EAX], EAX B83AC3 JMP SHORT 00B83AC6 ... #25: B84C22 XOR [EAX], EAX B84C24 JMP SHORT 00B84C27 #26: B839EC XOR [EAX], EAX B839EE POP DWORD PTR FS:[0] 请注意这些指令的地址已经不属于程序领空,位于ASProtect的内部DLL内(基址00B70000,其它机器可能不同)。这些地方的EAX已经置0,所以"XOR [EAX], EAX"会触发内存访问异常。 跟踪"SE Handler"最终会来到ntdll.ZwContinue,其PCONTEXT偏移B8处指向异常处理结束后应返回的地址。这个地址总是指向"XOR [EAX], EAX"后的下一条指令。如上面的:B841A6,B83AC3,……,B84C24和B839EE。 楼主失误之处是在这些地址上设置“硬件执行断点”,这是断不下来的! 正确的方法是设置“普通执行断点F2”,就可以断下来了。要注意的是,有时断下来后标志寄存器EFLAG的单步会置位,清零即可。 所以为方便,OD的“异常”标签中应勾选“忽略内存访问异常”,留给目标自己去处理,省去每次SHIFT+F9的麻烦。 如果是为了学习ASProtect,可以这样一步一步跟下去。不过这个目标并没有使用ASProtect提供的注册机制,而是自己实现了一套注册方法,跟壳代码就没有任何意义,应该从OEP后开始。 想了解这个版本ASProtect的注册体系,可参考我在“小白在破解一个注册表重启验证的软件时遇到的问题,求助。”里的回复。 通过跟踪壳代码会找到到达OEP或NEAR OEP(在OEP代码被偷时)的最后一“跳”: 00401000 > 68 01105000 PUSH 00501001 ; Entry point 00401005 E8 01000000 CALL 0040100B 0040100A C3 RETN ; to 00501001 0040100B C3 RETN ; to 0040100A 00501001 60 PUSHAD ; in ".fn" section 00501002 E8 03000000 CALL 0050100A ... 00B97295 894424 1C MOV [ESP+1C], EAX ; EAX=004AA2EC 00B97299 61 POPAD 00B9729A 50 PUSH EAX 00B9729B C3 RETN ; to 004AA2EC 004AA2EC E8 95E10000 CALL 004B8486 ; OEP / NEAR OEP 004AA2F1 E9 78FEFFFF JMP 004AA16E 这里注意到PUSHAD/POPAD指令结构,一个使用“ESP定律”很好的提示。不幸的是,“ESP定律”脱壳在这里不起作用,“软硬不吃”。 但可通过几个简单步骤迅速来到OEP或NEAR OEP的004AA2EC处。要点是ASProtect服“软”不服“硬”,后来将这几个步骤写为脚本以迅速定位OEP,且通用于该ASProtect版本加壳的目标。 因为想弄清楚它的注册算法,并不关心ASProtect本身,所以在OD载入目标后每次都运行这个脚本作为开始,来快速到达需要关注的地址。 也可以采用脱壳的方式,方便“破解”及“汉化”。在恰当的地方、经过适当地处理可得到完美脱壳的目标程序,甚至经ASPack压缩的内部DLL。 “破解”并不容易,涉及很多地方及“暗桩”;另外,作者还使用了自己的代码来进行文件自校验。所以“注册”更简单和安全,同时还适用于它的x64版本。 注册通过与主程序EFFind.exe相同文件夹下的授权文件"EFFIN.LIC"来实现,其内容为: EF Find distribution license Copyright (c) 1994-2013, Emil Fickel All rights reserved. This copy is licensed to: Name : MistHill Company : bbs.pediy.com Serial No.: 182140-24614-90783210 Reg.ID. : BLC842C95RI;CM48FMBLBM3;814L2M2L3KA5B1653O:8AN3R4:AR61;7F Warning: This product is licensed to you pursuant to the terms of the author license agreement included with the original software. It is protected by copyright law and international treaties. Unauthorized reproduction or distribution may result in severe civil and criminal penalties, and will be prosecuted to the maximum extent possible under the law. One registered copy of this software may be dedicated to a single person who uses the software on one or more computers or to a single workstation used by multiple people. 有效授权为"Reg.ID."字段的字符串内容,是经过某种简单算法的编码。出于众所周知的原因,这里帖出的内容解码后是无法正确注册的。 经编码的"Reg.ID."包括以下字段: . 序列号 . 授权文件的时间戳 . 授权文件内容的校验和 . 用户名校验和 . 序列号校验和 . 组织/公司名校验和 . 以上三项字符串的校验和 总的来说,整个体系设计得还算不错,检测方面用到了定时器和多线程等手段,有的检测要在特定情况下才出现。 缺点是各个算法相对比较简单。另外,没有进行硬件锁定,泄露的授权文件适用于其他机器,所以它的黑名单会随版本的更新越来越长。 Keygen需要完成的任务: 1) 找到它的解码代码,并根据解码算法写编码算法。 2) 找到各校验和的算法,填写到相应字段中。 "EF Find 5.30"和"EF Find 7.30"算法完全一致,授权文件"EFFIN.LIC"是通用的。 这个软件本身没有太大意义,Windows已经集成了桌面搜索功能,不知道是否支持压缩文件和正则表达式,感觉把它作为CrackMe或KeygenMe来玩更有意思一些。 |
|
[求助]一个UPX壳,从3DB开始37个字节被修改,如何修复
最近也在学习UPX,弄了个ODbgScript的完美脱壳脚本,正在进行最后的测试,一两天内会发出来。 会具体讲这个头部数据的结构及含义。UPX的"-d"选项依赖它来解压缩,程序运行完全不需要它。 我的脚本类似"-d"选项的功能,但不需要这个头。在楼主遇到的情况下,"-d"选项无法使用,而脚本可进行完美脱壳。不过目前脚本只支持win32/pe。 UPX本身是开源的,可先查一下源码中的ARM部分。貌视IDA下有UPX的脱壳脚本,但不知是否适用于ARM。 |
|
[求助]小白在破解一个注册表重启验证的软件时遇到的问题,求助。
放个"Crystal Button 2.5"的主程序。只替换了原版的RSA密钥,配合以下注册码,可成功“注册”: Key: 0iqXkN8DEY6ElHYzRBADVX/1wPzQNA5y6zv6zlQmym/FLNVvZUJbK50KxYKrcUhXCFcVJlKD3f662bx6Hafikq63N+Jji+2mIITTh5MWmssKA8QggSX0W2AMnc4EYtIkBWZ+mhxx/WKtOuqB5M7EWPh0LSnPQxvGsBNfhMW7yOG4= 方便新手练习脱壳。注册过程: 文件: [FONT="Courier"]2004-02-01 17:32 911,872 crysb.exe MD5: 9C3343DCD8A11AB38BD355CD7325014B[/FONT] CrystalButton25.Patched.by.MistHill.7z |
|
[求助]小白在破解一个注册表重启验证的软件时遇到的问题,求助。
学业当然是第一位的!如果能有GF(/BF?)伴读,可能会轻松一些。呵呵,开个玩笑哈! 说到基础,论坛讨论得多,我也说不好。个人爱好,随着性子瞎折腾。 首先,要明确方向。 应结合你未来的职业规划,不应与学业冲突。搞逆向其实成本是相当高的——需要大量的时间,投入与产出需要权衡。 有的人具有商业特质,对“金钱的味道”特别敏感,把它当成事业,服务别人也致富了自己,最好不过了。 在读书这个阶段,学什么知识并不重要,更注重培养学习的能力、查找资料的能力、语言能力(含外文)、思考的能力。读到研究生可强化动手能力、与人沟通的能力。 还要养成好的习惯。我是属于比较散漫的人,有时其他人问我要某个东西的笔记,实在拿不出手,因为到后来自己都看不明白。人的记忆不那么靠谱,要勤于记录和整理。 我想,这些也应该属于基础的范畴。每个人的具体情况是不同的,基础这个概念也就没有明确的标准。 其次,得有兴趣;弗洛伊德强调的是“性趣”。整天面对机器和数字,枯燥与寂寞,常人难以承受。 微软几年前有句话:"Your Potential. Our Passion.",翻译过来:“您的潜力,我们的动力。”;翻译中规中矩,非常官方。但总觉得少了些啥,好比翻译中文古典诗词给外国人,很难出意境。关键在Passion一词,只可意会,不可言传。 有了Passion就好办了,"Nothing is impossible"! 那些年我们不是勒紧裤带也搞出了原子弹、人造卫星吗。 然后,就是经验了。这个没有办法,靠时间的积累,罗马也不是一日建成的。如果有刘翔孙杨们的天资,就不用太辛苦,但咱是笨鸟,得先飞。 很多东西是相通的,有了一定经验,事情就变得容易一些。 具体到“脱壳”或者“破解”的问题,抄一段"ASProtect Help"里的描述: How does it work? 大致是说: 在一般情况下,应用程序保护机制是基于“信封”的原则,将应用程序予以“封装”。 瞧瞧,十年前的保护原理与现今流行的各种保护没有什么不同,只不过各个环节的方法和手段略有差异,有的还加入了虚拟机的技术。 这里我们需要哪些知识呢? 懂一点操作系统的工作原理,应用程序的结构,汇编知识(能看懂就行),编程语言(要逐步熟悉其编译后机器代码的结构),善用工具。不要指望一下样样精通,还是一个循序渐进的过程。 论坛的资源很丰富,很多问题都能从前辈的帖子找到答案。视频和教程往往只着重于某一方面,并假定读者有一定程度的基础,但至少它告诉了How,至于Why原理方面的东西只能靠自己学习总结积累。 能有一点密码学方面的知识更好,有的函数若猜测是某种解密算法时,没必要跟进去,避免浪费时间,因为大都采用现成的算法库。只关注其输入、输出即可。 比如这个"ASProtect 1.23 RC4"版本,除了RSA还大量使用RC4进行解密。"Crystal Button"程序有7处代码片段被RC4加密,如果没有正确的Key,基本没法解密还原,即使“脱壳”能运行,会缺失注册版才有的功能。 另外,人们常问“脱掉后为什么不能跨平台?”。因为脱壳时只处理了导入函数表,壳代码运行后重定地址已经“写死”在脱壳后的文件里,重定位表没有了,需要重建。按上面Help的说法,跟壳代码,找到处理重定位表的关键位置,即可获得完整的表项。 太阳正在升起,月亮渐渐西下。最近野钓时常常欣赏到这宁静的景象,淡定着隐约的一丝伤感。个人拙见,愿与太阳们共勉! |
|
[求助]小白在破解一个注册表重启验证的软件时遇到的问题,求助。
不知楼主进展如何。 找了个v2.8的看了看,有点意思,可玩性极强! 它是用ASProtect 1.23 RC4来保护的,并使用了它的注册系统。 查壳软件能识别出是ASProtect,但不能确定具体版本。比如,DIE: ASProtect(1.33-2.1 Registered)[EXE32];FastScanner 4: ASProtect v1.33 - v2.1 Registered -> Alexey Solodovnikov。 ASPrINFO则一无所知,因为它实在太老了──十年前的产品。从其整个体系的设计思想和算法的具体实现来看,不能否认它的经典。 正因为经典,有很多人研究,按这个版本搜索论坛会得到大量文章。知道的人多了,强度自然就减弱了。 读那些文章很有意思,你会发现它造就了现在论坛的一大批大神!有的已经离开,让人怀念。 不过这些文章讲脱壳、破解的多,几乎没有找到讲算法的(我的搜索有问题?)。 为什么要脱?我逐渐明白了,国情决定的,因为要“汉化”。Crystal Button 2.5/2.8有很好的破解中文版,可供研究学习。 论坛有篇帖子讲怎么利用到达OEP之前内存访问异常的次数来准确识别早期ASProtect的版本,我写了个脚本来记录次数(26次)和位置以确认版本。当然对Crystal Button来说,已早有定论。 算法方面,Amenesia//TKM!有文章讲利用AS在生成RSA密钥时的漏洞来攻击ASProtect 1.0/1.1/1.11c的RSA-1024保护。论坛有两个帖子翻译这同一文章,足见其影响和重要。 好了,现在有两条路:脱壳、破解或搞定注册算法。 a) 脱壳、破解 有太多的文章,fly有很多经典文章。用工具脱或手工脱:Stripper不能替你还原OEP处的代码,手工则可以完全补回OEP的Stolen Code。VolX的脚本脱不了,目标版本太低! 这里有个术语:Pre-Dip。lipton有两篇文章专门讲这个,其中一篇还特别提到“水晶按钮”。请搜索KSSD或《看雪论坛精华6》。 脱完后,程序可以运行。“以自己的名字注册”也可出ZeNiX展示的About。但是事情没这么容易:注册版的导出和项目保存功能没法用。还需要破解! 我相信ZeNiX手里有可供注册的Key,嘿嘿! b) 研究注册算法 如果楼主打算学习它的注册原理,就不应从你脱壳后的版本开始,这是徒劳:ASProtect的注册系统已经被你脱掉了,找不到的! 应该从原版开始!为方便,这次应勾选忽略"Memory access violation"。 楼主的思路是对的,断RegOpenKeyExA。我Crystal Button 2.8的记录: [FONT="Courier"]00E1962D E8 C6BAFFFF CALL 00E150F8 ; JMP to advapi32.RegOpenKeyExA 00E19632 85C0 TEST EAX, EAX 0012FA70 00E19632 /CALL to RegOpenKeyExA from 00E1962D 0012FA74 80000001 |hKey = HKEY_CURRENT_USER 0012FA78 00E41F98 |Subkey = "Software\Crystal_Button_2\Crystal\Registration" 0012FA7C 00000000 |Reserved = 0 0012FA80 00020019 |Access = KEY_READ 0012FA84 0012FAAC \pHandle = 0012FAAC 00E1965F E8 A4BAFFFF CALL 00E15108 ; JMP to advapi32.RegQueryValueExA 00E19664 85C0 TEST EAX, EAX 0012FA6C 00E19664 /CALL to RegQueryValueExA from 00E1965F 0012FA70 0000005C |hKey = 5C 0012FA74 00E41F08 |ValueName = "Key" 0012FA78 00000000 |Reserved = NULL 0012FA7C 0012FAA0 |pValueType = 0012FAA0 0012FA80 00000000 |Buffer = NULL 0012FA84 0012FAA8 \pBufSize = 0012FAA8 00E1968F E8 74BAFFFF CALL 00E15108 ; JMP to advapi32.RegQueryValueExA 00E19694 8B45 F0 MOV EAX, [EBP-10] 0012FA6C 00E19694 /CALL to RegQueryValueExA from 00E1968F 0012FA70 0000005C |hKey = 5C 0012FA74 00E41F08 |ValueName = "Key" 0012FA78 00000000 |Reserved = NULL 0012FA7C 0012FAA0 |pValueType = 0012FAA0 0012FA80 00E42028 |Buffer = 00E42028 0012FA84 0012FAA8 \pBufSize = 0012FAA8 00E196B9 E8 22BAFFFF CALL 00E150E0 ; JMP to advapi32.RegCloseKey 00E196BE 33C0 XOR EAX, EAX 0012FA80 00E196BE /CALL to RegCloseKey from 00E196B9 0012FA84 0000005C \hKey = 0000005C[/FONT] 这里内部DLL的基址在00E10000,大小0001E000。在不同的操作系统和机器上会不同。已经不是程序的原区段地址空间了,所有的算法都在这里。 第一次advapi32.RegQueryValueExA返回Key的长度以分配空间,第二次读入Key。接下来返回地址00E19694以后就是怎么处理Key了。 搞清楚了它的算法和Key的结构后,再结合ASProtect自带的Keygen示例就可以自己做注册机了。 我测试机器的“硬盘指纹”和注册码: [FONT="Courier"]HardwareID = "FKTuYABgFAA=" Key = "1xdggZpH/3Rs02Os8RNY2YzFkZt2l226TtBD33nx204wF6gnmig6/AHoBV62aJnmobrEcOIPGgaacrUFtf05TFx+1ZYaI9S9dqxBhk8RllVlA7C9fxwadw1bES0bh4ytXUo2TYr9vr2MS/BWvhC8KPno8Qrbf+JiUrKAz96DLwFM="[/FONT]注意Key的第一个字符:'0'/'1',硬件锁定与否,应排除在BASE64编码范围内。“硬盘指纹”、Key的结构等等,如果有兴趣以后再讲。 按以往的经验替换用于RSA解密的密钥后,我就可以顺利注册了。但是Key里包含一个A(见Amenesia//TKM!的文章),我是没有的。它用来解密DLL后面的代码和程序空间的代码,没有它我就走不下去了。 这是ASProtect的强悍之处,所以破解的多,“注册”的少。很偶然地得到了它,这样我就能成功“注册”了。 16楼kingday讲“找个成功注册过的完整注册信息...”。是的,象这种东西,没有有效的注册信息很难搞,只有破解这条路可走。 遵循ZeNiX的教导,不要剥夺别人的挫折和喜悦。今天先讲这些,如果有需要再上传一个替换RSA密钥的“原版”和Key供参考。 “注册版”还可以弄成这样哦: |
|
[原创]迎国庆<RFID & NFC 之自制NFC手表>
了解一哈高科技,先谢过。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值