- 积分
- 427
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
前言
破解一直在 symbian 的发展史上充当着某种角色.或许如果那么多的破解软件可能很多人连软件都没用过.动不动就几十的软件不是我们买的起的.所以用破解软件是我们最值得兴奋的事.这里要好好感谢下众多破解组织的努力.才有今天那么多的破解软件.网上流传的破解教程不多.有个N7UG的也过时了.写这篇教程的目的是为了更多的朋友能了解下 symbian 的破解过程.我也暑假刚学所有水平有限.希望各位前辈多多见谅......
很多兄弟可能有个疑惑.我们需要什么工具.需要什么知识.首先必须知道的是ARM指令.大家可以上网搜索.下载下来最好能背下来.背不下来也无所谓.时刻准备着.遇到不懂的指令就打开查也一样.效率慢了点罢了.
然后就是破解的利器 IDA 了.下载最新版.不过仍旧不支持 3rd .对于symbian 是最好的破解工具.只能静态分析.也够了..当然对于IDA 的使用方法我就不重复了.说起来很长大家可以网上搜索
还有就是十六进制编辑器.我用的是 010Editor .当然其他的也可以.个人喜好 ^_^ .
本文只是入门级的教程.对一些想学破解但又不只从何入手的兄弟可能会比较有帮助.XX了这个软件可能会对你继续破解其他软件更有信心
破解过程
软件:Best.VideoRingtones.v1.03
SmartphoneWare 公司的软件很多.破解方法也一样.也很简单大家可以拿来多多练手
先在手机安装看看软件是怎么注册的.
第一步:
打开 IDA 后选择 "New" 然后选择"PDAS/......" 再选择“.app Symbian EPOC Executable” 或者“.sis Symbian EPOC Installation File”
然后打开解压后的 Best.VideoRingtones 所在文件夹.打开 VideoRingtones.app 文件.然后按下一步.IDA会自动分析.直到IDA停止分析.我们就可以动手了.
第二步:
分析完后如果大家看过n7UG的教程的可能会疑惑了.Strings window 窗口怎么连个提示信息都没有.而且有的软件照N7ug的教程在Strings window 窗口看不到累似 aYouHave,aDayLeft 的提示信息.没有这些信息我们要怎么开始破解.或者说那里找破解点.需要说明一下的是 0S7 以后的资源信息大部分都在 rsc 里.所以 app 看不到提示信息是很正常的事情.现在我们只能看函数的调用情况了..
第三步:常用函数
判断注册类: Compare__C7TDesC16RC7TDesC16. Compare__C6TDesC8RC6TDesC8 . CompareF__C7TDesC16RC7TDesC16..strcmp
时间类: DaysFrom__C5TTimeG5TTime . HomeTime__5TTime
读取串号类: GetMachineIdL . getgsmphoneid IMEI . GetSubscriberId IMEI
退出类: Exit__4Useri
有了这些常用函数我们只要跟着分析.只要有耐心和信心大部分软件都可以破解.但并不是全部...
第四步:
打开 ida 后看到提示窗口没有信息提示.首先想到的是看函数.当然第一时间我想到了 Compare__C7TDesC16RC7TDesC16 函数.最常用的比较注册码函数.
在IDA 点击 Import 窗口看到函数.找到 Compare__C7TDesC16RC7TDesC16 双击进去.
然后看到 .idata:1000A7BC IMPORT __imp_Compare__C7TDesC16RC7TDesC16
(双击) .idata:1000A7BC ; DATA XREF: .text:off_10006E84
然后又跳到
.text:10006E84 off_10006E84 DCD __imp_Compare__C7TDesC16RC7TDesC16
.text:10006E84 ; DATA XREF: TDesC16::Compare(TDesC16 const &)r
.text:10006E84 ; TDesC16::Compare(TDesC16 const &)
在 .text:10006E84 ; DATA XREF: TDesC16::Compare(TDesC16 const &) 点击右键
选择" jump to xref to operand“ 跳到调用函数的地方
第五步:
.text:10005398 PUSH {R4-R7,LR}
.text:1000539A SUB SP, SP, #0x10
.text:1000539C ADD R5, R0, #0
.text:1000539E ADD R0, #0xF8
.text:100053A0 LDR R0, [R0]
.text:100053A2 CMP R0, #0
.text:100053A4 B loc_100053C4
.text:100053A6 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:100053A6 MOV R4, SP
.text:100053A8 LDR R1, =dword_10008B58
.text:100053AA ADD R0, R4, #0
.text:100053AC BL __7TPtrC16PCUs
.text:100053B0 ADD R0, R5, #0
.text:100053B2 ADD R1, R4, #0
.text:100053B4 BL Compare__C7TDesC16RC7TDesC16 ; TDesC16::Compare(TDesC16 const &)
.text:100053B8 MOV R1, #0
.text:100053BA CMP R0, #0
.text:100053BC BNE loc_100053C0
.text:100053BE MOV R1, #1
.text:100053C0
.text:100053C0 loc_100053C0 ; CODE XREF: sub_10005398+24j
.text:100053C0 CMP R1, #0
.text:100053C2 BEQ loc_100053CC
.text:100053C4
.text:100053C4 loc_100053C4 ; CODE XREF: sub_10005398+Cj
.text:100053C4 MOV R0, #0 (改为1.就是已注册状态)
.text:100053C6 B loc_100053FC
上面的指令说明都很简单.大家对着ARM指令说明也能看出来.实在没什么心情写了.到此为止了...
有关于更多的破解教程以后再慢慢写吧.破解的方法很多.
|
|