论坛帮助 |
社区圈子 |
日历事件 |
2006-07-19, 15:14 | #1 | ||
|
|||
见习会员
等级: 四袋长老
|
1.下载:方正写真3.5C(方正的FTP里面有) 2.安装(废话地球人都知道) 第一集所需要的工具,壳识别推荐:PEiD 静态分析器:C32Asm go: 1.peid打开主程序文件EagleProof。exe 没有加壳(没有加壳就好办多了,要不然脱壳都要用1集) 程序显示为:C++ 确认没有壳 2.打开写真程序,看看:蓝色打字印人耳目,“此版本为演示版,不能用于商业用途” 分析:由于没有正版授权引起,唯一入手的的位置就是这个信息 3.好了!开始启动 C32Asm 打开主程序,点”查看---字符串“ 程序计算ing……稍等片刻, 查找字符串”演示版“结果,没有,在来找 ”演示“,还是没有,上下翻翻看,NND,都是E文,没有可疑的中文字, 4.密友办法,上GOOGLE 打入 "FY 演示”好了!翻译为:dome 好单词,经常看到,在查找这个dome .OK!出来一个 双击他 来到这里 ::0045913A:: 68 D5F20000 PUSH F2D5 E文好的人自己看看这串E文是什么, 看看汇编这段,上下看看 ::00459123:: A1 F8BD5000 MOV EAX,DWORD PTR [50BDF8] \:BYJMP JmpBy:0045910D,00459118, ::00459128:: 894424 14 MOV DWORD PTR [ESP+14],EAX ::0045912C:: C64424 38 09 MOV BYTE PTR [ESP+38],9 ::00459131:: E8 8A890000 CALL 00461AC0 \:JMPDOWN ::00459136:: 85C0 TEST EAX,EAX ::00459138:: 75 1D JNZ SHORT 00459157 \:JMPDOWN ::0045913A:: 68 D5F20000 PUSH F2D5 ::0045913F:: 8D4C24 18 LEA ECX,DWORD PTR [ESP+18] ::00459143:: E8 2EC30500 CALL 004B5476 \:JMPDOWN ::00459148:: 8B4C24 14 MOV ECX,DWORD PTR [ESP+14] ::0045914C:: 6A 02 PUSH 2 ::0045914E:: 51 PUSH ECX ::0045914F:: E8 7C550000 CALL 0045E6D0 \:JMPDOWN ::00459154:: 83C4 08 ADD ESP,8 ::00459157:: 8D4C24 14 LEA ECX,DWORD PTR [ESP+14] \:BYJMP JmpBy:00459138, ::0045915B:: C64424 38 01 MOV BYTE PTR [ESP+38],1 ::00459160:: E8 33BD0500 CALL 004B4E98 \:JMPDOWN ::00459165:: FFD5 CALL EBP \:BYJMP JmpBy:00459103, ::00459167:: 8B15 F8BD5000 MOV EDX,DWORD PTR [50BDF8] ::0045916D:: 895424 24 MOV DWORD PTR [ESP+24],EDX ::00459171:: C64424 38 0A MOV BYTE PTR [ESP+38],A ::00459176:: E8 557A0100 CALL 00470BD0 \:JMPDOWN ::0045917B:: 8BCE MOV ECX,ESI ::0045917D:: 8BF8 MOV EDI,EAX ::0045917F:: E8 FC190000 CALL 0045AB80 \:JMPDOWN ::00459184:: FFD5 CALL EBP ::00459186:: 3BFB CMP EDI,EBX ::00459188:: 74 23 JE SHORT 004591AD \:JMPDOWN ::0045918A:: 68 9EF20000 PUSH F29E ::0045918F:: 8D4C24 14 LEA ECX,DWORD PTR [ESP+14] ::00459193:: E8 DEC20500 CALL 004B5476 \:JMPDOWN ::00459198:: 8B4424 10 MOV EAX,DWORD PTR [ESP+10] ::0045919C:: 6A 03 PUSH 3 ::0045919E:: 50 PUSH EAX ::0045919F:: E8 2C550000 CALL 0045E6D0 \:JMPDOWN ::004591A4:: 83C4 08 ADD ESP,8 ::004591A7:: 899E D0000000 MOV DWORD PTR [ESI+D0],EBX ::004591AD:: E8 AE7A0100 CALL 00470C60 \:JMPDOWN\:BYJMP JmpBy:00459188, ::004591B2:: FFD5 CALL EBP ::004591B4:: E8 277A0100 CALL 00470BE0 \:JMPDOWN ::004591B9:: 8BF8 MOV EDI,EAX ::004591BB:: FFD5 CALL EBP ::004591BD:: 3BFB CMP EDI,EBX ::004591BF:: 74 58 JE SHORT 00459219 \:JMPDOWN ::004591C1:: 68 6AF20000 PUSH F26A ::004591C6:: 8D4C24 14 LEA ECX,DWORD PTR [ESP+14] ::004591CA:: E8 A7C20500 CALL 004B5476 \:JMPDOWN ::004591CF:: 8D4C24 10 LEA ECX,DWORD PTR [ESP+10] ::004591D3:: 8D5424 18 LEA EDX,DWORD PTR [ESP+18] ::004591D7:: 51 PUSH ECX ::004591D8:: 68 A05D5000 PUSH 505DA0 \->: J ::004591DD:: 52 PUSH EDX ::004591DE:: E8 CEBF0500 CALL 004B51B1 \:JMPDOWN ::004591E3:: 50 PUSH EAX ::004591E4:: 8D4C24 14 LEA ECX,DWORD PTR [ESP+14] ::004591E8:: C64424 3C 0B MOV BYTE PTR [ESP+3C],B ::004591ED:: E8 EDBD0500 CALL 004B4FDF \:JMPDOWN ::004591F2:: 8D4C24 18 LEA ECX,DWORD PTR [ESP+18] ::004591F6:: C64424 38 0A MOV BYTE PTR [ESP+38],A ::004591FB:: E8 98BC0500 CALL 004B4E98 \:JMPDOWN ::00459200:: 51 PUSH ECX ::00459201:: 8D4424 14 LEA EAX,DWORD PTR [ESP+14] ::00459205:: 8BCC MOV ECX,ESP ::00459207:: 896424 24 MOV DWORD PTR [ESP+24],ESP ::0045920B:: 50 PUSH EAX ::0045920C:: E8 F4B90500 CALL 004B4C05 \:JMPDOWN ::00459211:: E8 6A7E0000 CALL 00461080 \:JMPDOWN ::00459216:: 83C4 04 ADD ESP,4 ::00459219:: E8 D2F2FBFF CALL 004184F0 \:JMPUP\:BYJMP JmpBy:004591BF, ::0045921E:: 84C0 TEST AL,AL ::00459220:: 74 3A JE SHORT 0045925C \:JMPDOWN ::00459222:: 8B0D F8BD5000 MOV ECX,DWORD PTR [50BDF8] ::00459228:: 894C24 14 MOV DWORD PTR [ESP+14],ECX ::0045922C:: 68 59F30000 PUSH F359 ::00459231:: 8D4C24 18 LEA ECX,DWORD PTR [ESP+18] ::00459235:: C64424 3C 0C MOV BYTE PTR [ESP+3C],C ::0045923A:: E8 37C20500 CALL 004B5476 \:JMPDOWN ::0045923F:: 8B5424 14 MOV EDX,DWORD PTR [ESP+14] ::00459243:: 6A 02 PUSH 2 好的,上面有一个 ::00459138:: 75 1D JNZ SHORT 00459157 \:JMPDOWN 在上面点反建,对应HEX编辑 ,把75改为74,保存 在启动程序看看,哈哈,上面“此版本为演示版,不能用于商业用途”没有了,解决了第一个显示问题,随便打一个图看看,能RIP,点打印,到了缓冲就没戏了。 为什么哪???那个是后面功能没有解开。 好的,我们在在这个附近看看,看看有没有什么可疑的地方, 注意看了 ::00459123:: A1 F8BD5000 MOV EAX,DWORD PTR [50BDF8] \:BYJMP JmpBy:0045910D,00459118, MOV EAX,DWORD PTR [50BDF8] 看看这里,,上下有两个地方调用这个内存地址 应该在这里有写傻东西, 好了第一集搞定, 下集,准备好CRACK的必须工具 OD!!自己去GOOGLE找,找到了好继续开工 88 干活挣钱取老婆,工作ing……………………………… 此帖于 2006-08-01 19:30 被 tzm1018 编辑. |
||
2006-07-24, 21:22 | #8 | ||
|
|||
见习会员
等级: 四袋长老
|
引用:
我把RIP,&狗号弄好了!!强制激活,居然不能RIP PS文件,不知道你的情况怎么样?? 算号部分无法弄好,把狗号改成了一个先前3.5版本的R狗号码!,但是无法激活,请教 |
||
2006-07-24, 23:31 | #10 | ||
|
|||
见习会员
等级: 四袋长老
|
1.RIP插件号码 是根据狗号 经过某种运算得到的!(多余的一句话) 2.插件号 直接控制软件的某些模块 我在最终算法的时候得到这个东西,清 seagullj老师看看 我改的狗号: 305419896 狗号 "E0753895782366"RIP选件号码 不知道是否正确 现在正在找总体狗号赋值的地方, 看到你给我的一些信息,知道了这个号是无穷的,估计无法逆算出狗号 xghd 经过你的提点,确认了我先前假设的东西,我以为他去注册表招一些启动信息,就没有仔细的看 |
||
2006-07-28, 22:31 | #12 | ||
|
|||
见习会员
等级: 四袋长老
|
第二集我们讲到去处RIP水印,后面的东西用相同的方法似乎没有效果, 我们解密思路陷入没有头绪,现在根本不知道解决什么问题, 收集一下信息!,论坛SEASEUL说过现在这个版本都是狗号,RIP号云云 我们看从这个地方能不能找到相干信息! 让他RIP那个什么字体的PS,在CID,天书字库里面有,上面能显示一些狗号 RIP版本, 我们看看方正的用户手册,软件启动的时候会出现输入RIP选件号码,可是我们没有狗 那个对话框还根本不出来,大家也知道,RIP号码是根据狗号的不通,也不同,我们能否通过这个 信息,得到狗号,为我们下一步的得到RIP号作出铺垫呢! 接下来我们回顾一下思路,去处水印的时候,不是用到了一点 文件本身没有水印,是读取的时候加上去的! 现在确定了一个目标!来看看我们的想法是否正确 思考: 记得论坛上面以前发布一个用TEXT打上一定的XXX,也跟SerialNo.Ps 是一样的效果,既然有一些前辈的经验,我们就不用在多想了,基本能确定 SerialNo差不多也是由特定的字符组成的,经过RIP时,由软件访问加密狗得到的数据, 然后加在上面,END 我们启动写真来RIP! 好的,riping 发现狗号为:serialnumber:FFFFFFFF0 按照先前论坛改方正狗号通用的方法,用16进制软件找一遍! 哇:3600多处,对于这个工作量,还是不要区做了,好,放弃 (当然不可能成功!FFFFFFF是计算机常见的字符,一个软件有N处,FFFFFFFF也不可能是狗号) 既然找FFFFFFFF 不成功,我们来用其他方式看看, 大娃力大无穷,二娃千里眼顺风耳,三娃刀枪不入,四娃使用水系魔法,五娃使用火系魔法,六娃会隐身术,七娃有紫色的黑洞般的宝葫芦 载入OD,运行,RIP SerialNo.Ps,由于不知道下什么断点,(上级的断点里面跳转太多,无法调试),我们就用比较简单的办法 查找字符,ALT+M打开内存,CTRL+B ,输入serialnumber,找啊找,好像能找到6.7个把! 看看标题兰,居然有Canon.dll,等等一些 看看这些名字就知道了,这些和打印机有些关系,应该不在我们的查找位置,(注意我们找的第一个),好出现了PspntRip块, 看看我们找的附近出现的一些东西, 013970D8 53 65 72 69 61 6C 4E 75 6D 62 65 72 00 00 00 00 SerialNumber.... 013970E8 50 72 6F 64 75 63 74 4E 61 6D 65 00 4D 6F 72 69 ProductName.Mori 013970F8 73 61 77 61 46 6F 6E 74 73 00 00 00 25 43 50 53 sawaFonts...%CPS 01397108 49 25 00 00 46 69 6C 65 53 79 73 74 65 6D 00 00 I%..FileSystem.. 01397118 4C 61 73 65 72 57 72 69 74 65 72 00 55 6E 6B 6E LaserWriter.Unkn 01397128 6F 77 6E 4A 6F 62 4E 61 6D 65 00 00 25 25 64 69 ownJobName..%%di 01397138 73 6B 25 64 25 25 00 00 25 64 69 73 6B 00 00 00 sk%d%%..%disk... 看看,这里有2个跟我们点阵上的东西雷同,应该我们想要的位置就在附近 SerialNumber:FFFFFFFF0 ProduT:PSPNT 这个字符,我们判断一下,可能是SerialNo.Ps本身的字符,经过了RIP,经过某些运算得到的, 也可能是DLL本身的,不管了,先看看我们判断是否正确, 选中SerialNumber这里,点反建,断点:内存访问。 返回写真在把刚才的文件RIP一次,没有断下来,证明这个只是经过他的一个流程,不是DLL本身的东西 我们在重复一个操作,发现地址在013970D8,ctel+G,输入013970D8 F2下断(其实还有更为简单的办法下这个断点,自己想想) RIP,断下来了,看看ECX,嘿嘿 值是FFFFFFFF,好像我们的狗号啊,管他呢,改城123456789 F9运行,又一个FFFFFFFF,改城123456789,F9,怎么这么多啊!!不管了,取消断点,F9,嘿嘿,看看刚才RIP的点阵 出现了什么? SerialNumber:No***, 得到了一个RIP与狗号的信息,我们来开始找RIP的相关信息,参照第一集的方法,翻译RIP选件,在C32ASM里面打开 搜一下RIP,得到的比较多,我们看看RIP Option ****** 呵呵,这个是什么东西?? Option 根据初中学的单词,好像是什么“选项”之类的,正题的过来就是 RIP选项,应该是这里 双击 0046B31C PUSH F2D8 我们来验证一下是否正确 ::0046B306:: E8 D58A0100 CALL 00483DE0 \:JMPDOWN ::0046B30B:: 8B86 28030000 MOV EAX, [ESI+328] ::0046B311:: 89BC24 00010000 MOV [ESP+100], EDI ::0046B318:: 3BC7 CMP EAX, EDI ::0046B31A:: 74 18 JE SHORT 0046B334 \:JMPDOWN ::0046B31C:: 68 D8F20000 PUSH F2D8 :RIP Option ****** ::0046B321:: 8D4C24 70 LEA ECX, [ESP+70] ::0046B325:: C74424 68 01000000 MOV DWORD PTR [ESP+68], 1 上面有一个跳转,我们来改一下无何,, ::0046B31A:: 74 18 JE SHORT 0046B334 \:JMPDOWN 改为 75,存盘。我们验证一下 加密狗号: -1 选件状态:RIP选件已激活 选件序列号:XXXXXXXXXXXXXXXX 看来我们的地方找对了,就差合适的方法! 既然找到地方了,我们下手就比较方便了,用OD载入来到 0046B31A F2下断点 我们网上面看看 ::0046B30B:: 8B86 28030000 MOV EAX, [ESI+328] ::0046B311:: 89BC24 00010000 MOV [ESP+100], EDI 我们在上一集的时候,说过,解密要密切关注 EAX值,到0046B30B也下一个断点,F9,开工 程序运行OK,点一下出入RIP选件密码,力马就断了下来,我们要仔细看看这些参数 ::0046B30B:: 8B86 28030000 MOV EAX, [ESI+328] ds:[0055F930]=00000000 eax=0012F9C8 ::0046B311:: 89BC24 00010000 MOV [ESP+100], EDI edi=00000000 堆栈 ss:[0012FAC0]=FFFFFFFF ?????? 注意了!!FFFFFFFFF=-1,在后面你可以看到, 我们找到一个地方了,如果你不想你打开RIP选件时候老实现为:-1 就这样改,双击这里 , ::0046B311:: 89BC24 00010000 MOV [ESP+100], EDI ::0046B311:: bf 78563412 MOV EDI,12345678 我们给EDI 复制为 12345678 ,运行,操!!还是 -1 不要灰心,我们已经知道了 内存中 FFFFFFFF=-1 这是就要密切关注出现FFFFFFFFF的MOV之类的 再次载入,我们慢慢F8往下面走, 0046B358 . 8B86 E8000000 mov eax, [esi+E8] 这里出现了eax =FFFFFFFF(也就是-1) 我们在改一次, 0046B358 . 8B86 E8000000 mov eax, [esi+E8] 0046B358 B8 78563412 mov eax, 12345678 运行看看: 加密狗号: 305419896 选件状态:RIP选件已激活 选件序列号:XXXXXXXXXXXXXXXX 好了,我们这步就完成了! 来说说这个软件解密的整体,软件的显示部分,只要能看到信息的,基本上就找到关键点, 知道关键点,我们就能下手, 现在软件已经能做学习使用了,(打印有B5限制)如果碰到其他软件,有些有如此的明显的提示信息 相信大家能搞定了它, 关于这个软件后面的一些功能,希望大家研究研究 我希望跟大家交流的是解密经验,并不是传播D版,在说偶还买了方正科技的股票,当然一个写真的和谐 并不能导致股票的下降,但是也希望国产软件加油,保持在国内软件行业的先进性,但不是方正公司的技术保守 搞得大家装个字库也要钱,开个选件也要钱,做了个图片文件之列的都要去找你们买这买那,等等。。很多很多 欢迎大家一起交流,交流直接发站内短信 按照惯例 首先要感谢CCTV,感谢我提供一个发展空间,再次感谢大家的支持,尤其要感谢我的父母,XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX………………………………………… (颁奖都这样的,烦人,就步能来个新鲜的) 谢谢 SEASEUL老师的支持 (这个是真心的)呵呵 |
||