首页
社区
课程
招聘
[原创]Symbian S60 3rd Reverse CrAcKiNg Tutorial
2009-5-1 09:10 29069

[原创]Symbian S60 3rd Reverse CrAcKiNg Tutorial

2009-5-1 09:10
29069
记得去年 Cater 曾经在某群里说过要写六个手机平台的解密教程
只是 Cater 真的好忙 好辛苦的说
Symbian 是我06年久接触了,那个时候S60 2nd 版本的手机有碰过
感觉 ARM 的汇编指令也不是很难,也过了几个软件
时隔今日,塞班 S60 三版的(OS 9.x)的系统也总结总结些个教程
满足下 某人 总是威逼 小 Cater 的野兽般的欲望吧。

--------------------------------------------------------------------------------

Symbian S60 3rd

Reverse CrAcKiNg Tutorial

By_CaterQiu

Mail: Cater.Qiu[At]Gmail.Com

MyBlog: Http://www.caterqiu.cn

May 1th,2009

--------------------------------------------------------------------------------

基础知识
Symbain OS

Symbian OS(中文译音“塞班系统”)由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发智能手机操作系统,现在已经被诺基亚收购。

Symbian OS硬件CPU采用的是ARM系列,使用的是ARM 32位指令而非THUMB。

EPCO

Symbian操作系统的前身是EPOC,"EPOC”这个词起源于世界将会进入“a new epoch of personal convenience”。EPOC是一个开放的操作系统,一开始的时候EPOC就加上了无线通信和一个外加应用程序的体系,因此在无线通信方面与其他操作系统相比具备先天的优势。

Symbian S60

Nokia S60 系列手机是市面上智能机里流行最广的手机。

Symbian Series 60 是Symbian S60 的全称

S60可以细化分为第一版、第二版、第三版、第四版、第五版

第一版和第二版差别不大,笼统概括为S60 2nd 、S60二版。(包含OS6、OS7、OS8 三个系列)

第三版第四版第五版核心是 OS9系列的,笼统概括为S60 3rd 、S60三版

2nd And 3rd

S60 3rd 和 S60 2nd从操作系统上看有很大的区别:

1、三版引入了权限签名这一安全机制,可通过对程序安装包进行签名授权。

2、S60 2nd是EPOC6,S60 3rd 是EPOC9,这也意味着其ELF (Executable and Linking Format)是可执行连接格式也发生了改变

在 S60 2nd 版本中,可执行体是 EPOC6 格式的 .APP 文件和 .DLL 文件

在 S60 3rd 版本中,可执行体是 EPOC9 格式的 .EXE 文件和 .DLL 文件

3、三版和二版的程序安装包,格式是不一样的,尽管都是.sis 结尾的文件

EPOC9 格式的可执行文件是可以压缩的,三版签名后的安装包一般是.sisx

ARM CPU

ARM 公司是专门从事基于 RISC(reduced instruction set computer,精简指令集计算机) 微处理芯片制造的企业。设计出的产品性能高、成本低和能耗省的特点,适用于多种领域,例如嵌入式系统、DSP、和手机。

ARM处理器本身是32位设计,但也配备Thumb 16位指令集

--------------------------------------------------------------------------------

准备工作

IDA Pro 5.2

鬼斧神工逆向分析利器

下载地址:http://bbs.pediy.com/showthread.php?t=55801

IDS files for EPOC6 and EPOC9

Symbian EPOC格式标示符文件,配合IDA5.2使用,解压置IDA相关目录即可

下载地址:

http://arteam.biz.hr/downloads/Symbian_EPOC6_EPOC9_Unleashed_IDS_Files_for_IDA_Pro_by_argv.rar

WinHex

强大的磁盘编辑工具,也是非常棒的十六进制编辑器。

SisContents

S60 三版程序(Sis,Sisx) 打包、解包、签名工具。

http://symbiandev.cdtools.net

CeleASM

用于查看ARM OPCODE

宇宙杰出青年Yonsm(郭春杨) 之作

主页:WWW.Yonsm.NET

Symbian_OS_9.x-ELF_Toolz

用于解压和压缩3rd  EXE和DLL工具

当然我不是宇宙杰出青年,博客还是有的

Blog: WwW.CaterQiu.Cn

RESEdit.exe

S60 三版程序RSC资源修改工具,主要用作汉化

这四款小工具我的博客有文件打包,详情参阅

WwW.CaterQiu.Cn/Article/Symbian_S60_3rd_Reverse_CrAcKiNg_Tutorial_By_CaterQiu.html

--------------------------------------------------------------------------------

实战操作
Example:DVDPlayer 1.26.SISx (http://www.viking.tm)

Setp 1:Unpack Sis/Sisx File


Use_SisContents_Unpack_S60_3rd_Target_Sis_File

Setp 2:UnComPress ELF File


Use_Symbian_OS_9.x_ELF_Toolz_UnComPress_Target_ELF_File

Compare File Size Between Original(BAK_dvdplayer.exe) And NoCompress(dvdplayer.exe),

You Have Found dvdplayer.exe Was Unpacked.

Setp 3:Analysis Program Flow


把脱壳后的程序拖入IDA中


勾上 堆栈指针和机器码字节数为8


Shift+F12设置下字符串类型,Unicode 要的


字符串窗口中 357062008960014

类似IMEI的串号,双击过来


继续向上回溯字符串被调用的地方


回溯到到sub_8A2C

注意:

MOV R12,SP

STMFD SP!,{R4,R5,R7,R11,R12,LR,PC}

这两句类似Win32程序汇编代码中

PUSH EBP

MOV EBP,ESP

ADD ESP,XXX

意味着什么呢?意味着这个是子功能函数的函数入口


既然这个已经是子函数的入口了

我大致猜测刚才显示的那个串号是作者自己用来做的手机串号

我估计写入这个串号是为了检测

当串号为 357062008960014

就不需要启动软件注册功能

暂时这么猜测吧

按下X按键看看有哪些地方调用

还好只有一处


返回到这里

分析代码详细过程我就不在这里细说了

Loc _8280 这里与解密有关的部分,我们进入分析


进来后,再进入 sub_9114 分析看看


很显然 sub_9114 也是一个子函数

这里这号是图形化的,看看整个分支流程


CompareF 比较函数

再猜测下咯

刚才是作者手机串号的代码

这里的比较

很大何能是判断是不是作者的手机

R0寄存器和8x86 EAX寄存器一样常用语函数返回值

没查SDK了,和Windows比较函数一样

一般返回0 说明两参数比较相等

ATTACH]25409[/ATTACH]
加个注解解释下吧

LDR          R0, [R6,#0x98]    ;     相当于    MOV R0,[R6+0x98]

MOV     R1, R10         ;      相当于    MOV R1,R10

BL         TDesC16::CompareF(TDesC16 const&) ;     相当于 Comparf(R0,R1)

CMP     R0, #0          ; R0为函数的返回值,为0,说明参数 R0和参数 R1 相等

MOVEQ    R8, #1          ; IF R0=0 Then R8=1

STREQ   R8, [R6,#0x90]     ; IF R0=0 Then Storage R8 To R6+0x90 Memory

BEQ     loc_922C        ; IF R0=0 Then Call Loc_922C Function

很明显要改变程序流程

需要patch下代码

修改

CMP R0,#0

变成

CMP R0,R0

可以一直作用下列的流程

自然而然

我们的补丁代码也就是这个了

Setp 4:Make ARM OPCODE


Use_CeleASM_Make_OPCODE

生成的OPCODE是

    5 00000004 e3500000         CMP R0,#0

    6 00000008 e1500000         CMP R0,R0


看看 CMP R0,#0 的OPCODE和我们途中的 OPCODE是否相同



不难看出

5 00000004 e3500000         CMP R0,#0

是对应Little-Endianl数据存储类型的ARM CPU

也就是低位字节排在内存较低地址

Patch_OPCODE: 00 00 50 E1 (CMP   R0,R0)
Setp 5:Patch Data


先从IDA中查看需要修改代码对应的文件偏移

0x000012AC


原来的


修改后就这样了

最后存盘即可。

Setp 6:Compress ELF File


Use_Symbian_OS_9.x_ELF_Toolz_ComPress_Target_ELF_File

Setp 7:Pack S60 3rd File

1、把之前破解好,加压缩的dvdplayer.exe 复制一份到别处

2、删除之前解包出来的文件夹

D:\Symbian_Reverse_Toolz\Toolz\SisContents121\DVDPlayer 1.26

3、再次用SisContents打开原版的.sis文件,点击 Extract Files 图标

4、拷贝之前破解好,加压缩的dvdplayer.exe,复制到

D:\Symbian_Reverse_Toolz\Toolz\SisContents121\DVDPlayer 1.26\sys\bin

替换掉解包出来的

5、删除原来的签名:回到SisContents中, Tools->Delete Signatures

6、File->Save As->另存文件即可。

Setp 8:Run Patched .Sis File With Mobile

在手机上测试我们修改后的程序,破解成功。

说明那个串号是一个作者留下的小路吧,当然如果替换作者原来测试机的串号357062008960014 成自己的串号,那么程序也是一路绿灯通行的。

学习小结
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

Symbian S60 3rd Reverse CrAcKiNg_Tutorial

By CaterQiu

Blog www.caterqiu.cn

Mail [email]Cater.Qiu@Gmail.com[/email]

2009-5-1

--------------------------------------------------------------------------------

文中提到的附件我已打包
Symbian_Reverse_Toolz.rar
相关资料.rar

实话的说,本来教程想拿英文写的,顺带练习练习的

只是越写越困 越不通顺~所以后面 就用中文混淆一下吧~

顺带说下,明天是某人生日,某人很寂寞,先睡觉了。

感谢:水水、老k、RoBinhood、我的群主

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (34)
雪    币: 86
活跃值: (903)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luzhmu 2009-5-1 10:03
2
0
好东西,非常感谢。。。。初窥手机平台破解
雪    币: 218
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
gswxy 2009-5-2 19:54
3
0
厉害,,向你学习了。
雪    币: 2576
活跃值: (447)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
wyfe 2009-5-2 21:08
4
0
Cater文章写的不错呀
雪    币: 172
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9494 2009-5-2 22:36
5
0
非常学习了,谢谢
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-5-3 19:36
6
0
感谢cater的好文章。
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
baby2008 28 2009-5-4 12:50
7
0
好贴,感谢cater
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fhwclq 2009-5-7 14:06
8
0
生日快乐 !!!
雪    币: 178
活跃值: (134)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
pmma 1 2009-5-8 09:34
9
0
学习了,非常感谢
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Laona 2009-5-8 10:01
10
0
得好好看看..
雪    币: 85463
活跃值: (198795)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2009-5-8 10:03
11
0
Thanks for share.
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
救世猪 1 2009-5-9 12:14
12
0
厉害~~~~~
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
思彦乖乖 2009-5-10 00:15
13
0
学习了,还在理解中!
雪    币: 431
活跃值: (1875)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
riusksk 41 2009-5-10 10:24
14
0
感谢楼主分享……
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lazygao 2009-5-10 10:42
15
0
学习``一下就是有点吃力,希望楼主多放点相关的资料``
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zengcity 2009-5-11 14:18
16
0
很好,很强大...细看学习
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Rightleft 2009-5-12 12:24
17
0
LZ好棒啊,感谢分享此文,获益匪浅!
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-7-9 20:18
18
0
确实是好文章。大家一起学习!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
binaryman 2009-7-13 17:52
19
0
踏破铁鞋无觅处,得来全不费工夫!
多谢楼主!
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-7-13 17:54
20
0
Cater的文章写的很好,深入浅出,工具配置齐全。

是Symbian手机调试入门的最佳选择。
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
天行路者 2009-7-14 13:38
21
0
我用了几年的塞班了……,嘿嘿,不过是3230,2nd,学习一下3rd的破解,将来换手机自己破
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
txia 2009-8-15 17:57
22
0
真的不错,现在这方面的软件越来越多了
雪    币: 88
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xnop 2009-8-25 11:22
23
0
太牛逼了。。谢谢
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJJC 2009-8-26 10:48
24
0
S60饭支持一下 尤其是IDS files for EPOC6 and EPOC9 我找好久了.... 谢谢
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leftup 2009-8-26 12:38
25
0
压缩解压不是有Elftran么
游客
登录 | 注册 方可回帖
返回