Symbian塞班软件破解入门教程.docx
《Symbian塞班软件破解入门教程.docx》由会员分享,可在线阅读,更多相关《Symbian塞班软件破解入门教程.docx(17页珍藏版)》请在冰豆网上搜索。
Symbian塞班软件破解入门教程
基础知识
SymbainOS
SymbianOS(中文译音“塞班系统”)由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发智能手机操作系统,现在已经被诺基亚收购。
SymbianOS硬件CPU采用的是ARM系列,使用的是ARM32位指令而非THUMB。
EPCO
Symbian操作系统的前身是EPOC,"EPOC”这个词起源于世界将会进入“anewepochofpersonalconvenience”。
EPOC是一个开放的操作系统,一开始的时候EPOC就加上了无线通信和一个外加应用程序的体系,因此在无线通信方面与其他操作系统相比具备先天的优势。
SymbianS60
NokiaS60系列手机是市面上智能机里流行最广的手机。
SymbianSeries60是SymbianS60的全称
S60可以细化分为第一版、第二版、第三版、第四版、第五版
第一版和第二版差别不大,笼统概括为S602nd、S60二版。
(包含OS6、OS7、OS8三个系列)
第三版第四版第五版核心是OS9系列的,笼统概括为S603rd、S60三版
2ndAnd3rd
S603rd和S602nd从操作系统上看有很大的区别:
1、三版引入了权限签名这一安全机制,可通过对程序安装包进行签名授权。
2、S602nd是EPOC6,S603rd是EPOC9,这也意味着其ELF(ExecutableandLinkingFormat)是可执行连接格式也发生了改变
在S602nd版本中,可执行体是EPOC6格式的.APP文件和.DLL文件
在S603rd版本中,可执行体是EPOC9格式的.EXE文件和.DLL文件
3、三版和二版的程序安装包,格式是不一样的,尽管都是.sis结尾的文件
EPOC9格式的可执行文件是可以压缩的,三版签名后的安装包一般是.sisx
ARMCPU
ARM公司是专门从事基于RISC(reducedinstructionsetcomputer,精简指令集计算机)微处理芯片制造的企业。
设计出的产品性能高、成本低和能耗省的特点,适用于多种领域,例如嵌入式系统、DSP、和手机。
ARM处理器本身是32位设计,但也配备Thumb16位指令集
准备工作
IDAPro5.2
鬼斧神工逆向分析利器
下载地址:
bbs.pediy./showthread.php?
t=55801
IDSfilesforEPOC6andEPOC9
SymbianEPOC格式标示符文件,配合IDA5.2使用,解压置IDA相关目录即可
下载地址:
arteam.biz.hr/downloads/Symbian_EPOC6_EPOC9_Unleashed_IDS_Files_for_IDA_Pro_by_argv.rar
WinHex
强大的磁盘编辑工具,也是非常棒的十六进制编辑器。
SisContents
S60三版程序(Sis,Sisx)打包、解包、签名工具。
CeleASM
用于查看ARMOPCODE
宇宙杰出青年Yonsm(郭春)之作
主页:
WWW.Yonsm.NET
Symbian_OS_9.x-ELF_Toolz
用于解压和压缩3rdEXE和DLL工具
当然我不是宇宙杰出青年,博客还是有的
Blog:
WwW.CaterQiu.Cn
RESEdit.exe
S60三版程序RSC资源修改工具,主要用作汉化
这四款小工具我的博客有文件打包,详情参阅
WwW.CaterQiu.Cn/Article/Symbian_S60_3rd_Reverse_CrAcKiNg_Tutorial_By_CaterQiu.html
实战操作
Example:
DVDPlayer1.26.SISx(.viking.tm)
Setp1:
UnpackSis/SisxFile
Use_SisContents_Unpack_S60_3rd_Target_Sis_File
Setp2:
UnComPressELFFile
Use_Symbian_OS_9.x_ELF_Toolz_UnComPress_Target_ELF_File
CompareFileSizeBetweenOriginal(BAK_dvdplayer.exe)AndNoCompress(dvdplayer.exe),
YouHaveFounddvdplayer.exeWasUnpacked.
Setp3:
AnalysisProgramFlow
把脱壳后的程序拖入IDA中
勾上堆栈指针和机器码字节数为8
.
Shift+F12设置下字符串类型,Unicode要的
字符串窗口中0014
类似IMEI的串号,双击过来
继续向上回溯字符串被调用的地方
回溯到到sub_8A2C
注意:
MOVR12,SP
STMFDSP!
{R4,R5,R7,R11,R12,LR,PC}
这两句类似Win32程序汇编代码中
PUSHEBP
MOVEBP,ESP
ADDESP,XXX
意味着什么呢?
意味着这个是子功能函数的函数入口
既然这个已经是子函数的入口了
我大致猜测刚才显示的那个串号是作者自己用来做的手机串号
我估计写入这个串号是为了检测
当串号为0014
就不需要启动软件注册功能
暂时这么猜测吧
按下X按键看看有哪些地方调用
还好只有一处
返回到这里
分析代码详细过程我就不在这里细说了
Loc_8280这里与解密有关的部分,我们进入分析
进来后,再进入sub_9114分析看看
很显然sub_9114也是一个子函数
这里这号是图形化的,看看整个分支流程
CompareF比较函数
再猜测下咯
刚才是作者手机串号的代码
这里的比较
很大何能是判断是不是作者的手机
R0寄存器和8x86EAX寄存器一样常用语函数返回值
没查SDK了,和Windows比较函数一样
一般返回0说明两参数比较相等
加个注解解释下吧
LDRR0,[R6,#0x98];相当于MOVR0,[R6+0x98]
MOVR1,R10;相当于MOVR1,R10
BLTDesC16:
:
CompareF(TDesC16const&);相当于Comparf(R0,R1)
CMPR0,#0;R0为函数的返回值,为0,说明参数R0和参数R1相等
MOVEQR8,#1;IFR0=0ThenR8=1
STREQR8,[R6,#0x90];IFR0=0ThenStorageR8ToR6+0x90Memory
BEQloc_922C;IFR0=0ThenCallLoc_922CFunction
很明显要改变程序流程
需要patch下代码
修改
CMPR0,#0
变成
CMPR0,R0
可以一直作用下列的流程
自然而然
我们的补丁代码也就是这个了
Setp4:
MakeARMOPCODE
Use_CeleASM_Make_OPCODE
生成的OPCODE是
500000004e3500000CMPR0,#0
600000008e1500000CMPR0,R0
看看CMPR0,#0的OPCODE和我们途中的OPCODE是否相同
不难看出
500000004e3500000CMPR0,#0
是对应Little-Endianl数据存储类型的ARMCPU
也就是低位字节排在存较低地址
Patch_OPCODE:
000050E1(CMPR0,R0)
Setp5:
PatchData
先从IDA中查看需要修改代码对应的文件偏移
0x000012AC
原来的
修改后就这样了
最后存盘即可。
Setp6:
CompressELFFile
Use_Symbian_OS_9.x_ELF_Toolz_ComPress_Target_ELF_File
Setp7:
PackS603rdFile
1、把之前破解好,加压缩的dvdplayer.exe复制一份到别处
2、删除之前解包出来的文件夹
D:
\Symbian_Reverse_Toolz\Toolz\SisContents121\DVDPlayer1.26
3、再次用SisContents打开原版的.sis文件,点击ExtractFiles图标
4、拷贝之前破解好,加压缩的dvdplayer.exe,复制到
D:
\Symbian_Reverse_Toolz\Toolz\SisContents121\DVDPlayer1.26\sys\bin
替换掉解包出来的
5、删除原来的签名:
回到SisContents中,Tools->DeleteSignatures
6、File->SaveAs->另存文件即可。
Setp8:
RunPatched.SisFileWithMobile
在手机上测试我们修改后的程序,破解成功。
说明那个串号是一个作者留下的小路吧,当然如果替换作者原来测试机的串号0014成自己的串号,那么程序也是一路绿灯通行的。
学习小结
ARM指令集需要掌握
遇到B当CALL指令用即可
BL是调用系统函数
Bxx是条件调用类似条件跳转Jxx指令
R0-R3可以用作参数传递
R0和Win32汇编中EAX作用一样常用语存放函数返回值
解密思路和Windows上的解密思路是一样的
可以通过字符串来定位关键代码,
也可以通过相关API找关键代码
Symbian解密注意事项
解包后记得先解压EXE或者DLL文件
修改后的EXE、DLL程序不可以直接替换到手机中使用,需要做成安装包
打包前一定要给EXE、DLL压缩下
打包时要注意签名,最好先删除所有的签名
WwW.CaterQiu.Cn/Article/Symbian_S60_3rd_Reverse_CrAcKiNg_Tutorial_By_CaterQiu.html
SymbianS603rdReverseCrAcKiNg_Tutorial
ByCaterQiu
Blog
MailCater.QiuGmail.
2009-5-1