【文章標題】:Samp免流軟件以及地鐵跑酷的自校驗分析
【文章作者】: Ericky
【作者博客】: http://blog.csdn.net/hk9259
【下載地址】: 自行百度
【保護方式】: 自校驗
【作者聲明】: 本人水平有限,若有不足錯誤之處請指正
0x1前言
羣裏討論的兩款軟件的自校驗,一開始有人說是簽名校驗,而且說找不到地方,下面就說一下我的拙見,若有錯誤之處,望各位大俠不吝指正
0x2樣本一
Samp免流軟件–版本1.96
在Mainactivity中的Oncreate方法中可發現一些多的代碼:
刪除上述兩句,往下分析,發現所謂的“簽名校驗”實質如下:
所謂的“簽名校驗”其實就是取了整個apk的大小,大小若改變了則判斷爲盜版APK,因此之需要獎之前的包大小return回去即可達到目的。
最後再刪掉XML中的如下多餘代碼:
<meta-data android:name="BANGCLE_SDK_VERSION" android:value="1005" />
<meta-data android:name="BANGCLE_APP_KEY" android:value="web_194926" />
<receiver android:name="neo.proxy.DistributeReceiver" android:exported="false">
<intent-filter> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="com.secneo.plugin.action.HOURLY" />
<action android:name="com.secneo.plugin.action.DAILY" />
<action android:name="com.secneo.plugin.action.APP_STARTED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="com.secneo.proxy.action.CUSTOM" />
</intent-filter>
</receiver>
<service android:name="neo.proxy.FastService" android:exported="false" />
<activity android:theme="@android:style/Theme.Dialog" android:name="neo.proxy.ToolActivity" android:excludeFromRecents="true" android:launchMode="singleInstance" android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="com.secneo.proxy.action.CUSTOM" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
BB加固的校驗就完美去除,剩下的就是破解的事情了。
0x3 樣本二
地鐵跑酷遊戲–版本2.34
重打包後會出現如下提示:
搜索後發現並不能搜到關鍵字,試着搜索一下”download”,便定位到了關鍵類如下:
接下來的就是將所有fake引用值改爲false即可完美繞過去了。一共有四處,其中一處如下:
0x4 總結
去自校驗定位很重要,而不僅僅是看別人的文章後學會搜Signature。因爲自校驗並不止簽名一種方式,另一方面來說,繞過自校驗也不一定需要知道檢測簽名的函數。
By Ericky
2015.7.25