基础知识SymbainOSSymbianOS(中文译音“塞班系统”)由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发智能手机操作系统,现在已经被诺基亚收购。SymbianOS硬件CPU采用的是ARM系列,使用的是ARM32位指令而非THUMB。EPCOSymbian操作系统的前身是EPOC,"EPOC”这个词起源于世界将会进入“anewepochofpersonalconvenience”。EPOC是一个开放的操作系统,一开始的时候EPOC就加上了无线通信和一个外加应用程序的体系,因此在无线通信方面与其他操作系统相比具备先天的优势。SymbianS60NokiaS60系列手机是市面上智能机里流行最广的手机。SymbianSeries60是SymbianS60的全称S60可以细化分为第一版、第二版、第三版、第四版、第五版第一版和第二版差别不大,笼统概括为S602nd、S60二版。(包含OS6、OS7、OS8三个系列)第三版第四版第五版核心是OS9系列的,笼统概括为S603rd、S60三版2ndAnd3rdS603rd和S602nd从操作系统上看有很大的区别:1、三版引入了权限签名这一安全机制,可通过对程序安装包进行签名授权。2、S602nd是EPOC6,S603rd是EPOC9,这也意味着其ELF(ExecutableandLinkingFormat)是可执行连接格式也发生了改变在S602nd版本中,可执行体是EPOC6格式的.APP文件和.DLL文件在S603rd版本中,可执行体是EPOC9格式的.EXE文件和.DLL文件3、三版和二版的程序安装包,格式是不一样的,尽管都是.sis结尾的文件EPOC9格式的可执行文件是可以压缩的,三版签名后的安装包一般是.sisxARMCPUARM公司是专门从事基于RISC(reducedinstructionsetcomputer,精简指令集计算机)微处理芯片制造的企业。设计出的产品性能高、成本低和能耗省的特点,适用于多种领域,例如嵌入式系统、DSP、和手机。ARM处理器本身是32位设计,但也配备Thumb16位指令集准备工作IDAPro5.2鬼斧神工逆向分析利器下载地址:http://bbs.pediy.com/showthread.php?t=55801IDSfilesforEPOC6andEPOC9SymbianEPOC格式标示符文件,配合IDA5.2使用,解压置IDA相关目录即可下载地址:http://arteam.biz.hr/downloads/Symbian_EPOC6_EPOC9_Unleashed_IDS_Files_for_IDA_Pro_by_argv.rarWinHex强大的磁盘编辑工具,也是非常棒的十六进制编辑器。SisContentsS60三版程序(Sis,Sisx)打包、解包、签名工具。http://symbiandev.cdtools.netCeleASM用于查看ARMOPCODE宇宙杰出青年Yonsm(郭春杨)之作主页:WWW.Yonsm.NETSymbian_OS_9.x-ELF_Toolz用于解压和压缩3rdEXE和DLL工具当然我不是宇宙杰出青年,博客还是有的Blog:WwW.CaterQiu.CnRESEdit.exeS60三版程序RSC资源修改工具,主要用作汉化这四款小工具我的博客有文件打包,详情参阅WwW.CaterQiu.Cn/Article/Symbian_S60_3rd_Reverse_CrAcKiNg_Tutorial_By_CaterQiu.html实战操作Example:DVDPlayer1.26.SISx(http://www.viking.tm)Setp1:UnpackSis/SisxFileUse_SisContents_Unpack_S60_3rd_Target_Sis_FileSetp2:UnComPressELFFileUse_Symbian_OS_9.x_ELF_Toolz_UnComPress_Target_ELF_FileCompareFileSizeBetweenOriginal(BAK_dvdplayer.exe)AndNoCompress(dvdplayer.exe),YouHaveFounddvdplayer.exeWasUnpacked.Setp3:AnalysisProgramFlow把脱壳后的程序拖入IDA中勾上堆栈指针和机器码字节数为8.Shift+F12设置下字符串类型,Unicode要的字符串窗口中357062008960014类似IMEI的串号,双击过来继续向上回溯字符串被调用的地方回溯到到sub_8A2C注意:MOVR12,SPSTMFDSP!,{R4,R5,R7,R11,R12,LR,PC}这两句类似Win32程序汇编代码中PUSHEBPMOVEBP,ESPADDESP,XXX意味着什么呢?意味着这个是子功能函数的函数入口既然这个已经是子函数的入口了我大致猜测刚才显示的那个串号是作者自己用来做的手机串号我估计写入这个串号是为了检测当串号为357062008960014就不需要启动软件注册功能暂时这么猜测吧按下X按键看看有哪些地方调用还好只有一处返回到这里分析代码详细过程我就不在这里细说了Loc_8280这里与解密有关的部分,我们进入分析进来后,再进入sub_9114分析看看很显然sub_9114也是一个子函数这里这号是图形化的,看看整个分支流程CompareF...