-
-
[原创]电子书的相关破解
-
发表于:
2007-5-20 15:09
10766
-
【文章标题】: 电子书的相关破解
【文章作者】: kid
【软件名称】: 友益文书6.4.1
【下载地址】: 自己搜索下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov [Overlay]
【保护方式】: 自效验+不知名方式==
【编写语言】: VC2005
【使用工具】: OD
【操作平台】: XP
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
嘛,虽说这方面还算是新人,不过也想写点自己的心得,望各位大侠指点啊~~
原来电脑里有几本友益文书6.4.1制作的加密的电子书,可惜时间过期了,电脑也换新的了,原来的密码不能用了==
于是呼就想把它破掉,让任何电脑都能看。
用PEiD查壳为ASPack 2.12 -> Alexey Solodovnikov [Overlay]。附加数据在0x00075a00处,大小0x03690a98,就是电子书里的pdf数据了。
秒脱壳后,再查看是用Borland Delphi 4.0 - 5.0编写的,一运行就退出了,有自效验和日期限制么。此外这个软件还是稍稍有点麻烦的,作者做了一些手脚,程序一失去焦点就自动关闭;改了注册表的值,不能查看隐藏文件;断点设的不好就会报异常Fxx,联系作者什么的;效验不止一次等等==
OD载入,对CreateFile,ReadFile,SetFilePointer,GetFileSize下断点,很快就会找到放自效验值的位置,在exe文件的0x3a2处,这里的值是0x0f763ac5。当程序读入exe数据文件时,对数据下访问断点,就来到计算效验的地方了。这个程序的效验是对整个exe进行和效验。
004E0F98 LEA EAX,DWORD PTR SS:[EBP-1020] ; 存放数据的地址
004E0F9E XOR ECX,ECX
004E0FA0 MOV CL,BYTE PTR DS:[EAX]
004E0FA2 ADD DWORD PTR SS:[EBP-14],ECX ; 逐字节累加
004E0FA5 INC EAX
004E0FA6 DEC EDX
004E0FA7 JNZ SHORT 参考图.004E0F9E
004E0FA9 DEC EBX
004E0FAA JNZ SHORT 参考图.004E0F72
004E0FAC SUB DWORD PTR SS:[EBP-14],7B
004E0FB0 LEA EAX,DWORD PTR SS:[EBP-12B8]
004E0FB6 CALL 参考图.0040663C
004E0FBB CALL 参考图.00402874
004E0FC0 CMP DWORD PTR SS:[EBP-C],0
004E0FC4 JNZ SHORT 参考图.004E0FE8
004E0FC6 MOV EAX,DWORD PTR SS:[EBP-1C] ; 原先读入的效验值
004E0FC9 CMP EAX,DWORD PTR SS:[EBP-14] ; 计算得到的效验值
004E0FCC JNZ SHORT 参考图.004E0FE1 ; 不相同就挂了
004E0FCE MOV EBX,1
004E0FD3 MOV EAX,DWORD PTR SS:[EBP-4]
004E0FD6 INC BYTE PTR DS:[EAX+14534]
004E0DE5 XOR EAX,EAX
004E0DE7 MOV AL,BYTE PTR SS:[EBP-20]
004E0DEA ADD EAX,DWORD PTR SS:[EBP-1C] ; 加上效验值的每个字节
004E0DED XOR EDX,EDX
004E0DEF MOV DL,BYTE PTR SS:[EBP-1F]
004E0DF2 ADD EAX,EDX
004E0DF4 XOR EDX,EDX
004E0DF6 MOV DL,BYTE PTR SS:[EBP-1E]
004E0DF9 ADD EAX,EDX
004E0DFB XOR EDX,EDX
004E0DFD MOV DL,BYTE PTR SS:[EBP-1D]
004E0E00 ADD EAX,EDX
004E0E02 MOV DWORD PTR SS:[EBP-1C],EAX
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课