吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8789|回复: 58
收起左侧

[Android 原创] 去除一个图片爬虫软件第三方插件

  [复制链接]
AItechnology 发表于 2020-8-12 13:23
最近逛吾爱时发现一个帖子https://www.52pojie.cn/forum.php?mod=viewthread&tid=1234153&extra=page%3D1%26filter%3Dtypeid%26typeid%3D232
里面分享了一个图片爬虫的软件,软件很好,非常感谢搂住分享,但发现软件需要一些除了网络之外的权限,所以初衷就是让这么好的软件再净化净化,去除其中的第三方插件和不必要的权限,废话不多说,直接开始。
在分析开始前,打开MT管理器,开启Activity记录,看自己打开的界面的Activity的包名。我找程序主界面就是这么干的

下面贴出结果
com.example.so.finalpicshow.mvp.ui.activities.DefineActivity:程序主界面
com.example.so.finalpicshow.mvp.ui.activities.GalleryActivity:"本地"界面
com.example.so.finalpicshow.mvp.ui.activities.HuabanActivity:"花瓣"界面
com.example.so.finalpicshow.mvp.ui.activities.lastversion.AdShwoActivity:"共享"界面
com.example.so.finalpicshow.mvp.ui.activities.lastversion.AccountAndCodeActivity:"密码"界面
com.example.so.finalpicshow.mvp.ui.activities.Setting2Activity:"设置"界面
有了前面的准备,现在打开AndroidKiller这反编译神器,准备开干,直接把软件拖进去,等待反编译完成,然后回编译安装验证,无签名验证,没有其它任何异常,说明可以直接修改软件了。
1.分析manifest.xml文件
先删除一些不必要且可能有风险的权限
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"/>//检测用户行为
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>//开机启动
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.READ_PROFILE"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>//读取联系人
接下来看看有哪些Activity等信息;
初始化的application名称:com.example.so.finalpicshow.MyApplication
可能存在的第三方插件(友盟)
<meta-data android:name="UMENG_APPKEY" android:value="590c82808f4a9d5a94002041"/>
<meta-data android:name="UMENG_MESSAGE_SECRET" android:value="46baabeab0009bc3ad582ebaf3f2ec32"/>
存在的Activity有:com.example.so.finalpicshow.mvp.ui.activities.DefineActivity
程序入口Activity:com.example.so.finalpicshow.mvp.ui.activities.lastversion.ChangeActivity
其它的Activity有:
com.example.so.finalpicshow.mvp.ui.activities.ShowPicDetail2Activity
com.example.so.finalpicshow.mvp.ui.activities.MidDetailActivity
com.example.so.finalpicshow.mvp.ui.activities.SettingsActivity
com.example.so.finalpicshow.mvp.ui.activities.GalleryActivity
com.example.so.finalpicshow.mvp.ui.activities.lastversion.DownloadManagerActivity
com.example.so.finalpicshow.mvp.ui.activities.VedioListActivity
com.example.so.finalpicshow.mvp.ui.activities.OriginPlayerActivity
com.example.so.finalpicshow.mvp.ui.activities.BookShowActivity
com.example.so.finalpicshow.mvp.ui.activities.HuabanActivity
com.example.so.finalpicshow.mvp.ui.activities.Setting2Activity
com.example.so.finalpicshow.mvp.ui.activities.lastversion.ManhuaChapterActivity
com.example.so.finalpicshow.TestAlias
com.example.so.finalpicshow.mvp.ui.activities.lastversion.VideoDetaiActivity
com.example.so.finalpicshow.mvp.ui.activities.lastversion.AccoutActivity
再看看其注册的服务,下面这个服务是接入的bomb推送服务插件
<service android:exported="true" android:label="PushService" android:name="cn.bmob.push.lib.service.PushService" android:process=":bmobpush">
<service android:name="cn.bmob.push.lib.service.PushNotifyService" android:process=":bmobpush"/>
注册的广播接收器,用来第三方插件的自启动等
<receiver android:name="cn.bmob.push.PushReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.USER_PRESENT"/>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
            </intent-filter>
        </receiver>
        <receiver android:name="com.example.so.finalpicshow.event.push.MyPushMessageReceiver">
            <intent-filter>
                <action android:name="cn.bmob.push.action.MESSAGE"/>
            </intent-filter>
        </receiver>
        <receiver android:name="cn.bmob.push.PushNotifyReceiver" android:process=":bmobpush">
            <intent-filter>
                <action android:name="cn.bmob.push.action.HEARTBEAT"/>
                <action android:name="cn.bmob.push.action.NOTIFY"/>
            </intent-filter>
        </receiver>
其它看起来不太友好的Activity
com.example.so.finalpicshow.mvp.ui.activities.lastversion.ChangeActivity//跳转至开头的延迟界面
net.youmi.android.nm.vdo.VideoActivity//似乎和广告有关
com.example.so.finalpicshow.mvp.ui.activities.UploadActivity
com.example.so.finalpicshow.mvp.ui.activities.lastversion.AccountAndCodeActivity
cn.bmob.pay.v3.act.PayAct//似乎要付钱
com.example.so.finalpicshow.mvp.ui.activities.lastversion.PayActivity//似乎要付钱
好了,现在更改主程序入口,因为开头会有延迟界面,估计是以后放广告的界面,删掉所有带<activity-alias>标签的Activity,将com.example.so.finalpicshow.mvp.ui.activities.DefineActivity的Activity改为如下样子
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/app_name" android:name="com.example.so.finalpicshow.mvp.ui.activities.DefineActivity" android:theme="@style/ImageTranslucentTheme1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
2.前面的分析先结束,进入到程序入口的Application看反编译源码
import android.os.Environment;
import android.support.multidex.MultiDexApplication;
import com.example.so.finalpicshow.utils.CrashHandler;
import io.realm.Realm;
import io.realm.RealmConfiguration.Builder;
import java.io.File;
public class MyApplication
  extends MultiDexApplication
{
  public static final String PATH_database = Environment.getExternalStorageDirectory().getAbsolutePath() + "/a/database";
  public static final String SETTINGS = "settings";
  private static MyApplication instance;
  
  public static MyApplication getInstance()
  {
    return instance;
  }
  
  public void onCreate()
  {
    super.onCreate();
    instance = this;
    CrashHandler.getInstance().init(getApplicationContext());
    Realm.init(this);
    Realm.setDefaultConfiguration(new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build());
  }
}
可以看到在onCreate()方法中初始化一个数据库,另外初始化作者的工具类CrashHandler,搜索CrashHandler发现没有别处引用,所以直接删掉这个CrashHandler的初始化代码
接下来搜索Realm类,这是一个安卓的数据库,所以不用删除
至此,Application不再管它
3.进入主界面代码,看看有没有什么东西,主界面com.example.so.finalpicshow.mvp.ui.activities.DefineActivity
反编译源码之后得到onCreate()方法:
public void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    verifyStoragePermissions(this);
    getWindowWidth();
    Bmob.initialize(this, "6e1af9cc924c71448415c6312df77694");
    BmobInstallation.getCurrentInstallation().save();
    BmobPush.startWork(this);
    WebUtil.getInstance().init(this);
    doSomeWork();
    initUI();
    initNav();
  }
可以发现其初始化了bomb消息推送平台,怎么办?我们把它初始化的appid给置空。要是选择删除的话,引用的地方有点多,所以个偷懒
另外,把Manifest.xml中Bmob有关的服务和广播接收器全部删了(其实里面的所有广播接收器和服务都是第三方插件注册的,那些不必要的可能窃取用户隐私的权限也来自第三方插件)
这个时候打开DDMS看看log,发现报错的log且后面再也没有看到报错的log,证明第三方插件不能正常启动,我们的目的达到了BmobJNI-->aes:doFinal has error
4.最后就是看看那个支付类,发现只是在Manifest.xml声明了,却没有实现,且处在lastversion包中,说明作者可能在未来会实现收费,但这个版本不收费,最后,这个软件似乎是通过bomb来更新的,但是,我们已经破坏其初始化id,所以不会受到更新提醒了。
至此,这个软件的第三方插件已经被彻底被屏蔽了,达到了最初的目的。
最后,给大伙附上最终结果
链接:https://pan.baidu.com/s/1vJl9iC7pPvd5fLread9jhg
提取码:5pgq

免费评分

参与人数 27吾爱币 +23 热心值 +22 收起 理由
xlff66 + 1 + 1 谢谢@Thanks!
文东,SUANFA + 1 我喜欢很好的
38342175 + 1 + 1 我很赞同!
牧童 + 1 + 1 用心讨论,共获提升!
三滑稽甲苯 + 1 + 1 热心回复!
lsywy520 + 1 + 1 我很赞同!
haihai132 + 1 我很赞同!
易请惜 + 1 + 1 谢谢@Thanks!
gaoyong0713 + 1 我很赞同!
woditian + 1 + 1 用心讨论,共获提升!
qwe1996331 + 1 + 1 我很赞同!
gh0st_ + 1 用心讨论,共获提升!
小白箱 + 1 + 1 谢谢@Thanks!
evildoer7758 + 1 + 1 我很赞同!
邱淑贞 + 1 + 1 热心回复!
myfangs + 1 + 1 热心回复!
hhyks123 + 1 谢谢@Thanks!
考研狗 + 1 + 1 我很赞同!
RockYuZhiLi + 1 我很赞同!
深爱我的女孩 + 1 + 1 用心讨论,共获提升!
玟茂 + 1 + 1 我很赞同!
14境左右 + 1 + 1 热心回复!
inn + 1 我很赞同!
suyuewen + 1 谢谢@Thanks!
安七灵 + 1 蓝奏云:https://url.cn/grhaF2pG
mxpeienangng + 1 + 1 我很赞同!
momo0830 + 1 + 1 &amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

安七灵 发表于 2020-8-12 14:56
不想通过百度网盘下载的可以用下面这个↓
蓝奏云:https://url.cn/grhaF2pG
swz02 发表于 2020-8-12 13:43
chenlonglongche 发表于 2020-8-12 13:43
1054650250 发表于 2020-8-12 13:47
谢谢分享
无秽之鸦 发表于 2020-8-12 14:31
感谢楼主分享
HopesOfSummer 发表于 2020-8-12 14:48
昨天刚看到那个软件,今天就看到净化了,666
crosslcy 发表于 2020-8-12 14:50
感谢楼主
yy0738 发表于 2020-8-12 14:56
非常感谢楼主的分享
sky995 发表于 2020-8-12 15:12
直接搜索屏蔽http://推送就行了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 03:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表