很久以前發現的,發現沒寫到,補一下。
在使用cocos2d-x的SimpleAudioEngine時有遇到一個情形,就是有時候音效在幾個場景的切換後會撥不出來,後來發現到是因為我場景切換時會把舊場景的音效unload,再preload新場景的音效,不過照理講是不會有問題才對,後來測試是只有android會有這樣的問題。
後來查到https://d.hatena.ne.jp/itog/20100927/1285550195,裡面有寫到他的ID最大就只會到256個,所以當在重複unload 與 preload的動作之後,配到的ID就會大於256,大於256後就會發生音效撥不出來的問題。
解決的方案是呼叫end(),就可以讓ID重新計算,但會連Music都一起清掉,所以如果不想連Music都一起停的話就要另外寫方法。
另外那個網頁有提到一些其他SoundPool的限制,值得參閱一下。
詳細教程
這兩篇主要教你使用GDB並使用修改組語方式改程式
https://bbs.weiphone.com/read-htm-tid-672262.html
https://bbs.weiphone.com/read-htm-tid-1523875.html
MAC APP的防堵方式 參考用
第一點基本上沒用 第二點弄發佈版的時候build不過 第三點還沒試
https://www.seoxys.com/3-easy-tips-to-prevent-a-binary-crack/
最基本檢測方法
https://stackoverflow.com/questions/1929166/how-to-programmatically-determine-if-drm-was-removed-from-iphone-application
回應3 >
https://stackoverflow.com/questions/846309/reducing-piracy-of-iphone-applications
最佳回答>
https://thwart-ipa-cracks.blogspot.com/2008/11/detection.html
教學與效果
https://www.youtube.com/watch?v=R0EIkCNyCiE
關鍵文字
{SignerIdentity, Apple iPhone OS Application Signing}
關於那段文字似乎許多文章指出是在不用99鎂證書打包ipa時的步驟之一
https://blog.csdn.net/yohunl/article/details/5971252
https://www.cocoachina.com/bbs/simple/?t7316.html
https://www.codeios.com/thread-1054-1-1.html
剛剛看過可以在改過的ipa檔中的*~.arm中找到Apple iPhone OS Application Signing
我自己打包的沒有
另外似乎還有其他防止方式
防止方式一覽
https://lwbpeter.blog.163.com/blog/static/3850821120103180386372/
改的方法, 那段文字的主要功用 還在尋找當中
一些相關資料
https://lifehacker.com/5736101/how-to-crack-just-about-any-mac-app-and-how-to-prevent-it
https://hackulo.us/wiki/IOS_Cracking
https://www.mrspeaker.net/2011/01/06/mac-hacking/
https://www.cocoanetics.com/anticrack/
https://www.sensepost.com/blog/6254.html
https://38leinad.wordpress.com/2011/05/12/cracking-cocoa-apps-for-dummies/
使用CRACKULOUS破解App Store應用
https://www.jindi.org/bbs/thread-183804-1-1.html
揭秘破解软件的幕后,以及ARM那点事
https://bbs.weiphone.com/read-htm-tid-1374779.html
之前的文章{% post_link Lua預編譯 [Lua預編譯] %}有提到預編譯可保護source code免於被用戶修改,但在最近的專案中有人修改預編譯的lua檔達到作弊的效果,雖然看來像是硬改的,但仍對lua的decompiler做了一下搜尋,找到了下面的東西:
LuaDec51 - A Lua Decompiler for lua 5.1.x
這東西可以將預編譯後的lua檔反編譯,還原成一般人都看的懂的樣子,因此對於預編譯後的lua做防護仍有必要,主要的問題在於要選擇哪一種作法,最後是選擇用Checksum而不用加解密的方式,因為較快且基本上這個專案的設定一般玩家看到也不會有什麼問題。
程式庫的選擇上,最後是選擇了hashlib++,因為較小(專注於checksum )且便於使用(兩行code就可以取一個檔案的MD5),並且在編譯上沒有其他需要特別修改的地方,搭配cocos2d-x基本上沒有問題。
先講我的結論:沒有一個方法是保證百分之百適用於全部的裝置
以下列出找到的一些方法
TelephonyManager.getDeviceId()
不能用的原因: IMEI有重複的疑慮(不肖廠商為省錢用相同的)
不能用的原因:回原廠設定可能改變,root手機可改,某些廠牌取出來的都一樣
A hardware serial number, if available. Alphanumeric only, case-insensitive.
不能用的原因:僅2.3以上版本支援
不能用的原因:官方不推,首先非全部裝置都有WiFi,其次如果關閉,可能會取不到(以下Ref2中有人試過)
不能用的原因:還是有可能相同
參考資料
Ref1: https://android-developers.blogspot.com/2011/03/identifying-app-installations.html
Ref2: https://groups.google.com/group/android-developers/browse_thread/thread/48c7e15935a29eb1
Ref3: https://www.pocketmagic.net/?p=1662
Ref4: https://innovator.samsungmobile.com/cms/cnts/knowledge.detail.view.do?platformId=1&cntsId=9640
https://www-cs-students.stanford.edu/~amitp/gameprog.html
作者收集許多遊戲主題與相關聯結的文章
從最短路徑搜尋到以至到遊戲經濟體系都有
感覺上相當豐富