綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[討論] 怎么样阅读权限才能10?里面有搬运的修改长文

 關閉 [複製連結] 查看: 754|回覆: 1|好評: 0
跳轉到指定樓層
樓主
Shengjie-Zheng | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-8-8 06:37

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
如题,还差一点经验啊,怎么就不能升级呢。

分享下百度贴吧上的大神解鎖IOS源代码:据说已经找到内购代码用小号成功刷出648元礼包。

原文内容:
大概看了下ios的沙盒文件 初步认定这个游戏应该是用js+html5做的,没有看到跟unity有关的东西,先来一段源代码解读:


@charset "utf-8";


/* Com2us Platform Design Team. Author : Choi Hyunsun 2013-01-21. Edit : Kim Minjeong 2014-06-30 */


/* base */
html{height:100%;font-size:100.01%;-webkit-text-size-adjust:none;}
body{min-width:624px;height:100%;margin:0;padding:0;font:normal 28px/40px HelveticaNenu, Helvetica, sans-serif;color:#666;background:#cfdad9;}
h1, h2, h3, h4, h5, h6, div, p, dl, dt, dd, ul, ol, li, form, fieldset, blockquote, address, table, thead, tbody, tfoot, tr, td, caption{margin:0;padding:0;}
h1, h2, h3, h4, h5, h6 {font-size:1em;}
ul, ol{list-style:none;}
table {width:100%;font-size:1em;border:0;border-collapse:collapse;border-spacing:0;}
img{vertical-align:top;border:0;}
fieldset{border:0;}
select, input, textarea{margin:0;padding:0;font:normal 28px HelveticaNenu, Helvetica, sans-serif;color:#666;}
textarea{resize:none;}
a{color:#666;text-decoration:none;}
.blind{width:0;height:0;position:absolute;visibility:visible;overflow:hidden;padding:0;margin:0;font-size:0;line-height:0;text-indent:-9999em;}
.intext:focus{color:#444 !important;}
.intexton{color:#444 !important;}
* html .intext{color:#444 !important;}
*+ html .intext{color:#444 !important;}
*:lang(ja){font-family:*lucida grande*,tahoma,verdana,arial,*hiragino kaku gothic pro*,meiryo,*ms pgothic*,sans-serif;}




这段css代码还有英文,下面好多注释全是韩文了,可以看到开发者的名字和这份css的修改日期

-------
第二段代码,这段代码应该是我们在好友页面看到的 每个好友的最近登陆时间的UI代码,如下:
HubJS.RealTime.prototype.getRealTime = function(utc_timestamp, lang){
// var localTS = this.getLocalTS(utc_timestamp);
var localTS = parseInt(utc_timestamp);
var currentTS = new Date().getTime();
var gapTS = currentTS - localTS;
var gapSecond = Math.floor(gapTS/1000);


if(gapSecond < 60){
switch(lang) {
case *KOR* : return *방금 전*; break;
case *ENG* : return *just now*; break;
case *JPN* : return *たった今*; break;
case *ZHO* : return *刚刚*;break;
case *TCH* : return *刚刚*;break;
case *RUS* : return *только что*; break;
case *DEU* : return *Gerade eben*; break;
default : return *방금 전*; break;
}
}


var gapMinute = Math.floor(gapSecond/(60));
if(gapMinute < 60){
switch(lang) {
case *KOR* : return gapMinute+*분 전*; break;
case *ENG* : return gapMinute+*minutes ago*; break;
case *JPN* : return gapMinute+*分前*; break;
case *ZHO* : return gapMinute+*分钟前*;break;
case *TCH* : return gapMinute+*分钟前*;break;
case *RUS* : return gapMinute+*минут назад*; break;
case *DEU* : return *Vor *+gapMinute+* Minuten*; break;
default : return gapMinute+*분 전*; break;
}
}


var gapHour = Math.floor(gapSecond/(60*60));
if(gapHour < 24){
switch(lang) {
case *KOR* : return gapHour+*시간 전*; break;
case *ENG* : return gapHour+*hours ago*; break;
case *JPN* : return gapHour+*时间前*; break;
case *ZHO* : return gapHour+*小时前*;break;
case *TCH* : return gapHour+*小时前*;break;
case *RUS* : return gapHour+* часов назад*; break;
case *DEU* : return *Vor *+gapHour+* Stunden*; break;
default : return gapHour+*시간 전*; break;
}
}
var gapDay = Math.floor(gapSecond/(60*60*24));
if(gapDay < 4){
switch(lang) {
case *KOR* : return gapDay+*일 전*; break;
case *ENG* : return gapDay+*days ago*; break;
case *JPN* : return gapDay+*日前*; break;
case *ZHO* : return gapDay+*天前*;break;
case *TCH* : return gapDay+*天前*;break;
case *RUS* : return gapDay+* дней назад*; break;
case *DEU* : return *Vor *+gapDay+* Tagen*; break;
default : return gapDay+*일 전*; break;
}
}
var gapYear = Math.floor(gapSecond/(60*60*24*365));


var localDate = new Date(localTS);
//if(gapYear >= 1){
var year = localDate.getFullYear();
var month = localDate.getMonth()+1;
if(month < 10) month = *0*+month;
var date = localDate.getDate();
if(date < 10) date = *0*+date;
var ret = year + *.*+ month + *.* + date;
return ret
//}


return (localDate.getMonth()+1)+* 월 *+ localDate.getDay() +* 일*;


}

-------
第三段代码:


/**
* Validation email, password, hubid, tel, HTML, URL, IP
* @class Validation
* @example
* var validation = new HubJS.Validation();
* var ret = validation.validate(*email*,*[email protected]*);
*
*/
HubJS.namespace(*HubJS.Validation*);


HubJS.Validation = function(){
this._type = {
*email* : *HubJS.Validation.Email*
,
*password*:*HubJS.Validation.Password*
,
*hubid*:*HubJS.Validation.HubId*
,
*tel*:*HubJS.Validation.Tel*
};
}


HubJS.Validation.prototype.validate = function(type, value){
try{
var validationObj = eval("new " + this._type[type] + "()");
var ret = validationObj.isValid(value);
return ret;
}catch(e){
return false;
}
}


/**
* (Private Class)Email Validation
* @class Email
*/
HubJS.namespace(*HubJS.Validation.Email*);


HubJS.Validation.Email = function(){
this.rx = /^(([w-]+.)+[w-]+|([a-zA-Z]{1}|[w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9]).([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9]).([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9]).([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z]+[w-]+.)+[a-zA-Z]{2,4})$/
}
HubJS.Validation.Email.prototype.isValid = function(value){
if(this.rx.test(value)) {
return true;
} else {
return false;
}
}


/**
* (Private Class)Password Validation
* 4~25, 0~9|a~z|A~Z|-_+.@
* @class Password
*/
HubJS.namespace(*HubJS.Validation.Password*);


HubJS.Validation.Password = function(){
//4~12 not allowed special character except . - _ +
this.rx = /^[a-zA-Z0-9.-\_+]{4,12}$/
}
HubJS.Validation.Password.prototype.isValid = function(value){
if(this.rx.test(value)) {
return true;
} else {
return false;
}
}


/**
* (Private Class)HubId Validation
* 4~12, not white space, 0~9|a~z|A~Z|-_.
* @class HubId
*/
HubJS.namespace(*HubJS.Validation.HubId*);


HubJS.Validation.HubId = function(){
this.rx = /^[a-zA-Z0-9.-\_]{4,9}$/
}
HubJS.Validation.HubId.prototype.isValid = function(value){
if(this.rx.test(value)) {
return true;
} else {
return false;
}
}


这个应该只是我们注册登陆时候的检验网页的一些函数
-------
第四段代码:
//jsdoc
//http://code.google.com/p/jsdoc-toolkit/wiki
//https://github.com/douglascrockford/JSON-js/blob/master/json2.js
//http://bestiejs.github.com/json3/
/*
HubJS
{static function}
-namespace
-constant
{class}
-ui
-SegmentedControl
-Scroll
-Swipe
-ListView
-Loading
-Dialog


-Validation
-Touch
-crypto
-MD5
-native
-camera..?phonegap 참조
-Util


*/

可以看到部分界面是用phonegap写的
至于3D元素 还在研究某些文件该用什么工具打开=。=
不需要 反编译的, 他所有的.db 的数据库文件都可以用sqlite manager打开,里面的blob类型的文件直接另存为 xxxx.plist 然后用xcode打开可以看到全部内容

------
这段代码不知道是干嘛的 没找到正确的编码 谁来解读下
vGÎPøK6KCXYZ2ZT92GSQ3FSZW1.1.7$11BB3AD1-725C-47DC-967B-92C333CBF8FC$C917AA38-2606-4A6E-AD55-E3F88B3DCDF2Ád)6þ>س@·ÇçØqÙFÙ¼ÕGÉ
scr.height568scr.width320device.os.version7.1device.model.1iPhone5,21.1.7GÉ.bzh_CNAsia/ChongqingÿÿShop
Common_OnlinepopupMonsterCommon_MenuSelection;Ingame_Gameplay<Common_JailbreakerCommon_JailbreakerJailbreaker
Non-Jailbreaknù
Common_OnlineCountWifinýCommon_MenuSelectionBuildingbuilding_11§àCommon_MenuSelectionBlackmarketbuy¬yCommon_MenuSelectionMainMenuMonsterCommon_MenuSelectionMainMenuShop]ShopBuildshopproductID_800026§«Common_MenuSelectionBuildingbuilding_22®ÇCommon_MenuSelectionBuildingbuilding_17¼é
Common_MenuSelectionMainMenuBattleJ/Common_MenuSelectionMainMenuBattleTCommon_MenuSelectionBuildingbuilding_17bí
Common_MenuSelectionMainMenuMonsterACommon_MenuSelectionBuildingbuilding_20ùMonsterEnchantEnchant-unit11103-rarity2EMonsterEnchantEvolutionp§MonsterEnchantEvolution-unit11103-rarity3s$Common_MenuSelectionBuilding
building_24MonsterSummonnormalscroll<ýMonsterSummonnormalscrollEÔpopupdeckbuypopupnoQ¯Common_MenuSelectionBuildingbuilding_20[Common_MenuSelectionMainMenuBattlesCommon_MenuSelectionBattleScenario7CIngame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winóUIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win4³Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_winx6Ingame_Gameplaynextstageretry^Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winõ#Ingame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win12Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_winvÝ Ingame_Gameplaynextstagetomain2!Common_MenuSelectionMainMenuMonster"Common_MenuSelectionBuilding
building_2¤d#popupdeckbuypopupno°$Common_MenuSelectionMainMenuBattle¼Û%Common_MenuSelectionBattleScenario9BA&Ingame_GameplayScenariowinlose!scenario9-stage3-wave1_normal_win+ò*Ingame_GameplayScenariowinlose!scenario9-stage3-wave2_normal_win¨((Ingame_GameplayScenariowinlose"scenario9-stage3-wave3_normal_lose
Fó)popupResurrection10resurrection No
S¡*Ingame_Gameplaynextstagetomain
_H+Common_MenuSelectionMainMenuBattle
z.,Common_MenuSelectionBattleScenario7
1-Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_win
ô.Ingame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win3&/Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_winy0Ingame_Gameplaynextstageretryß#1Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winF72Ingame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win}3Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win£ï4Ingame_GameplaynextstageretryÕ5Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_win
56Ingame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win
mD7Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win
¢×8Ingame_Gameplaynextstageretry
¿79Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_win3_:Ingame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_winpo;Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win®ì<Ingame_Gameplaynextstageretryɰ=Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_win>Ingame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_winHê?Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win¼@Ingame_GameplaynextstageretryAIngame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winãìBIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_winÚCIngame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_winIâDIngame_Gameplaynextstageretryì<EIngame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winMFIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_winGIngame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_winÞâHIngame_GameplaynextstageretryøFIIngame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winDSJIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win~¹KIngame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win½ÐLIngame_Gameplaynextstageretry«&MIngame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_winCNIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_winFMOIngame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_winr/PIngame_Gameplaynextstagetomain¡QCommon_MenuSelectionBuildingbuilding_11ß5RCommon_MenuSelectionBlackmarketbuyâjSCommon_MenuSelectionMainMenuMonsterTCommon_MenuSelectionMainMenuShop}KUShopspecialshopproductID_1100005£PVCommon_MenuSelectionBuilding
building_2Ó³Wpopupdeckbuypopupno^XCommon_MenuSelectionBuildingbuilding_20»YMonsterEnchantEvolutionMZMonsterEnchantEvolution-unit15004-rarity4P[MonsterEnchantEvolution
¡MonsterEnchantEvolution-unit15603-rarity4]Common_MenuSelectionBuilding
building_2Z=^MonsterSummon
premiumscrollc¥_MonsterSummon
premiumscrollÀÈ`MonsterSummon
premiumscrollÒaMonsterSummon
premiumscrollß¶bMonsterSummon
premiumscrollõöcMonsterSummon
premiumscrollFdpopupdeckbuypopupnoNóeCommon_MenuSelectionMainMenuMonsteràxfCommon_MenuSelectionMainMenuMonsterïÚgCommon_MenuSelectionBuildingbuilding_11 `hCommon_MenuSelectionBlackmarketbuy c}iCommon_MenuSelectionMainMenuBattle jCommon_MenuSelectionBattleScenario7 kkIngame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_win!;÷lIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win!||mIngame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win!½ÉnIngame_Gameplaynextstagetomain!ÛoCommon_MenuSelectionMainMenuBattle!ípCommon_MenuSelectionBattleScenario1!öRqCommon_MenuSelectionMainMenuArena"ØrCommon_MenuSelectionBattleArena"ØsIngame_GameplayArenaModevs"tIngame_GameplayArenawinlosewin#£uCommon_MenuSelectionMainMenuArena#µvCommon_MenuSelectionMainMenuBattle$E*wCommon_MenuSelectionMainMenuArena$JæxCommon_MenuSelectionBattleArena$JæyIngame_GameplayArenaModevs$`/zIngame_GameplayArenawinlosewin%¿{Common_MenuSelectionMainMenuArena%Ô¤|Common_MenuSelectionMainMenuBattle%þº}Common_MenuSelectionBattleScenario7&þ~Ingame_GameplayScenariowinlose!scenario7-stage3-wave1_normal_win&nIngame_GameplayScenariowinlose!scenario7-stage3-wave2_normal_win&±Ingame_GameplayScenariowinlose!scenario7-stage3-wave3_normal_win&ãIngame_Gameplaynextstagetomain**Common_MenuSelectionBuildingbuilding_20*MonsterEnchantEnchant-unit11103-rarity2*dtMonsterEnchantEvolution*XMonsterEnchantEvolution-unit11103-rarity3*ÎCommon_MenuSelectionBuilding
building_2({MonsterSummon
premiumscroll((ÇMonsterSummon
premiumscroll(:MonsterSummon
premiumscroll(popupdeckbuypopupno(«WCommon_MenuSelectionMainMenuMonster(¶Common_MenuSelectionMainMenuMonster)ÙLCommon_MenuSelectionMainMenuMonster)ôuCommon_MenuSelectionBuildingbuilding_10,7ÎCommon_MenuSelectionMainMenuMonster,uCommon_MenuSelectionMainMenuBattle,Ä*Common_MenuSelectionMainMenuQuest,ÓCommon_MenuSelectionMainMenuFriend,ø3Common_MenuSelectionBuilding
building_1-ÊöCommon_MenuSelectionsmontowerdefend-ÏÑCommon_MenuSelectionMainMenuShop-ù+Common_MenuSelectionMainMenuevent.UÑ)

-----
scr.height568scr.width320device.os.version7.1device.model.1iPhone5,21.1.7GÉ.bzh_CNAsia/ChongqingÿÿShop
最后段代码里面有我的设备信息以及我的地理位置,好多乱码 先让我理理
-------
解码数据库文件+HTTP抓包中
---------
成功找到内购代码用小号刷了个648礼包


原文地址:http://tieba.baidu.com/p/3215567603
懂编码的可以去看看,我就混点经验
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則