Symbian塞班软件破解入门教程.docx

上传人:b****9 文档编号:25382524 上传时间:2023-06-07 格式:DOCX 页数:17 大小:324.16KB
下载 相关 举报
Symbian塞班软件破解入门教程.docx_第1页
第1页 / 共17页
Symbian塞班软件破解入门教程.docx_第2页
第2页 / 共17页
Symbian塞班软件破解入门教程.docx_第3页
第3页 / 共17页
Symbian塞班软件破解入门教程.docx_第4页
第4页 / 共17页
Symbian塞班软件破解入门教程.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Symbian塞班软件破解入门教程.docx

《Symbian塞班软件破解入门教程.docx》由会员分享,可在线阅读,更多相关《Symbian塞班软件破解入门教程.docx(17页珍藏版)》请在冰豆网上搜索。

Symbian塞班软件破解入门教程.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1