We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
想要了解下现有市场上的发布app的内部机制组成。 但是光靠乃氪金狗眼连网页也是原生UI都分不清楚
感觉安卓apk反编译这条路相对可行一点,毕竟我在以前15年前的时候就听说我同学把微信反编译出来看他代码了。
实验apk 感觉市场上的apk弄不好会搞点混淆啥的,不如先找一个简单极致的apk先来一波小白鼠 就直接用我们前面测试自动打包的制品库里面下
下载工具
放到一个无中文的目录 解压dex2jar和jd-gui
PS D:\apkAnalyse> java -jar .\apktool_2.6.0.jar d -f .\demo-release-1.0-1.apk -o source I: Using Apktool 2.6.0 on demo-release-1.0-1.apk I: Loading resource table... I: Decoding AndroidManifest.xml with resources... I: Loading resource table from file: C:\Users\guhui\AppData\Local\apktool\framework\1.apk I: Regular manifest package... I: Decoding file-resources... I: Decoding values */* XMLs... I: Baksmaling classes.dex... I: Copying assets and libs... I: Copying unknown files... I: Copying original files...
apktool可以提取出apk的resource,好像除了自己写的layout还打进去很多其他系统的xml
PS D:\apkAnalyse\dex-tools-2.1> .\d2j-dex2jar.bat .\classes.dex dex2jar .\classes.dex -> .\classes-dex2jar.jar
安卓app apk反编译
好了,开胃小菜上完改上正菜了 去官网把apk弄到手
先执行apktool看下得到的资源和配置 先看AndroidManifest.xml 命名暴露了是用flutter开发的
先抓下底部工具栏 通过菜单的图标资源反向查找
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout android:tag="layout/z_luojilab_player_home_tab_layout_0" android:background="@color/mb" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <FrameLayout android:id="@id/webContent" android:background="@color/mb" android:layout_width="0.0dip" android:layout_height="0.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <FrameLayout android:background="@color/mb" android:layout_width="0.0dip" android:layout_height="0.0dip" app:layout_constraintBottom_toBottomOf="@id/webContent" app:layout_constraintLeft_toLeftOf="@id/webContent" app:layout_constraintRight_toRightOf="@id/webContent" app:layout_constraintTop_toTopOf="@id/webContent" /> <androidx.constraintlayout.widget.ConstraintLayout android:layout_gravity="bottom" android:id="@id/homeLayout" android:layout_width="0.0dip" android:layout_height="49.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_weight="1.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/subscribeLayout" style="@style/uf"> <com.airbnb.lottie.LottieAnimationView android:id="@id/oneImageView" android:layout_width="32.0dip" android:layout_height="@dimen/fv" android:scaleType="centerCrop" app:layout_constraintBottom_toTopOf="@id/oneTextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" app:lottie_autoPlay="false" app:lottie_loop="false" /> <TextView android:textSize="@dimen/fu" android:textStyle="bold" android:textColor="@color/uc" android:gravity="center_horizontal" android:id="@id/oneTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="发现" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/oneImageView" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/subscribeLayout" android:layout_width="0.0dip" android:layout_height="49.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_weight="1.0" app:layout_constraintLeft_toRightOf="@id/homeLayout" app:layout_constraintRight_toLeftOf="@id/knowledgeBookLayout" style="@style/uf"> <ImageView android:id="@id/twoImageView" android:layout_width="32.0dip" android:layout_height="@dimen/fv" android:src="@drawable/aqw" android:scaleType="centerCrop" app:layout_constraintBottom_toTopOf="@id/twoTextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" /> <TextView android:textSize="@dimen/fu" android:textStyle="bold" android:textColor="@color/uc" android:gravity="center_horizontal" android:id="@id/twoTextView" android:layout_width="0.0dip" android:layout_height="wrap_content" android:text="学习计划" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/twoImageView" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_gravity="bottom" android:id="@id/knowledgeBookLayout" android:layout_width="0.0dip" android:layout_height="49.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_weight="1.0" app:layout_constraintLeft_toRightOf="@id/subscribeLayout" app:layout_constraintRight_toLeftOf="@id/boughtLayout" style="@style/uf"> <ImageView android:id="@id/knowledgeBookImageView" android:layout_width="32.0dip" android:layout_height="@dimen/fv" android:src="@drawable/aqy" android:scaleType="centerCrop" app:layout_constraintBottom_toTopOf="@id/knowledgeBookTextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" /> <TextView android:textSize="@dimen/fu" android:textStyle="bold" android:textColor="@color/uc" android:gravity="center_horizontal" android:id="@id/knowledgeBookTextView" android:layout_width="0.0dip" android:layout_height="wrap_content" android:text="知识城邦" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/knowledgeBookImageView" /> <View android:id="@id/noteRedTipView" android:background="@drawable/me" android:visibility="gone" android:layout_width="8.0dip" android:layout_height="8.0dip" app:layout_constraintEnd_toEndOf="@id/knowledgeBookImageView" app:layout_constraintStart_toEndOf="@id/knowledgeBookImageView" app:layout_constraintTop_toTopOf="@id/knowledgeBookImageView" /> <TextView android:textSize="11.0dip" android:textColor="@color/oa" android:gravity="center" android:id="@id/noteNumView" android:background="@drawable/mf" android:paddingLeft="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="1.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="16.0dip" android:layout_marginLeft="18.0dip" android:minWidth="16.0dip" android:text="" app:layout_constraintLeft_toLeftOf="@id/knowledgeBookImageView" app:layout_constraintTop_toTopOf="@id/knowledgeBookImageView" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/boughtLayout" android:layout_width="0.0dip" android:layout_height="49.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_weight="1.0" app:layout_constraintLeft_toRightOf="@id/knowledgeBookLayout" app:layout_constraintRight_toLeftOf="@id/meLayout" style="@style/uf"> <ImageView android:id="@id/threeImageView" android:layout_width="32.0dip" android:layout_height="@dimen/fv" android:src="@drawable/ar0" android:scaleType="centerCrop" app:layout_constraintBottom_toTopOf="@id/threeTextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" /> <TextView android:textSize="@dimen/fu" android:textStyle="bold" android:textColor="@color/uc" android:gravity="center_horizontal" android:id="@id/threeTextView" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="@dimen/ft" android:text="已购" android:layout_below="@id/threeImageView" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/threeImageView" /> <View android:id="@id/buyearaRedTipView" android:background="@drawable/me" android:visibility="gone" android:layout_width="8.0dip" android:layout_height="8.0dip" app:layout_constraintEnd_toEndOf="@id/threeImageView" app:layout_constraintStart_toEndOf="@id/threeImageView" app:layout_constraintTop_toTopOf="@id/threeImageView" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_gravity="bottom" android:id="@id/meLayout" android:layout_width="0.0dip" android:layout_height="49.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_weight="1.0" app:layout_constraintLeft_toRightOf="@id/boughtLayout" app:layout_constraintRight_toRightOf="parent" style="@style/uf"> <ImageView android:id="@id/fourImageView" android:layout_width="32.0dip" android:layout_height="@dimen/fv" android:src="@drawable/ar2" android:scaleType="centerCrop" app:layout_constraintBottom_toTopOf="@id/fourTextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" /> <TextView android:textSize="@dimen/fu" android:textStyle="bold" android:textColor="@color/uc" android:gravity="center_horizontal" android:id="@id/fourTextView" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="@dimen/ft" android:text="我的" android:layout_below="@id/fourImageView" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/fourImageView" /> <View android:id="@id/couponRedTipView" android:background="@drawable/me" android:visibility="gone" android:layout_width="8.0dip" android:layout_height="8.0dip" app:layout_constraintEnd_toEndOf="@id/fourImageView" app:layout_constraintStart_toEndOf="@id/fourImageView" app:layout_constraintTop_toTopOf="@id/fourImageView" /> </androidx.constraintlayout.widget.ConstraintLayout> <FrameLayout android:id="@id/homeTabCover" android:background="@color/a2_" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="49.0dip" app:layout_constraintBottom_toBottomOf="@id/homeLayout" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="@id/homeLayout" /> <androidx.constraintlayout.widget.Guideline android:orientation="horizontal" android:id="@id/tab_divider" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintGuide_end="49.0dip" /> <View android:id="@id/bottomLineView" android:background="@color/e2" android:layout_width="0.0dip" android:layout_height="1.1999817px" app:layout_constraintBottom_toTopOf="@id/tab_divider" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <FrameLayout android:id="@id/tabContent" android:layout_width="0.0dip" android:layout_height="0.0dip" app:layout_constraintBottom_toTopOf="@id/tab_divider" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@id/purchasedListGuideView" android:paddingBottom="3.0dip" android:visibility="gone" android:layout_width="30.0dip" android:layout_height="22.0dip" android:layout_marginLeft="18.0dip" android:src="@drawable/aqn" app:layout_constraintBottom_toTopOf="@id/boughtLayout" app:layout_constraintEnd_toEndOf="@id/boughtLayout" app:layout_constraintStart_toStartOf="@id/boughtLayout" app:layout_constraintTop_toTopOf="@id/boughtLayout" /> <LinearLayout android:orientation="vertical" android:id="@id/miniLayout" android:tag="binding_1" android:visibility="visible" android:layout_width="0.0dip" android:layout_height="wrap_content" app:layout_constraintBottom_toTopOf="@id/tab_divider" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent"> <include layout="@layout/dedao_mini_bar_layout" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
名字叫z_luojilab_player_home_tab_layout.xml,看上去八九不离十
再找下“我的”界面
<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout android:id="@id/root_view" android:tag="layout/me_fragment_layout_0" android:background="@color/m5" android:fitsSystemWindows="false" android:addStatesFromChildren="true" android:layout_width="fill_parent" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:bind="http://schemas.android.com/apk/res-auto"> <RelativeLayout android:id="@id/title_bar" android:layout_width="fill_parent" android:layout_height="50.0dip"> <View android:id="@id/v_title_bg" android:background="@color/m5" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50.0dip" android:layout_alignParentBottom="true"> <ImageView android:layout_gravity="center_vertical" android:id="@id/qrcodeImageView" android:padding="12.5dip" android:layout_width="45.0dip" android:layout_height="45.0dip" android:layout_marginLeft="2.5dip" android:src="@drawable/b4k" android:contentDescription="@string/ih" style="@style/ue" /> <View android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" /> <ImageView android:id="@id/classNumLayout" android:layout_width="45.0dip" android:layout_height="45.0dip" android:src="@drawable/b4p" android:scaleType="centerInside" style="@style/ue" /> <ImageView android:id="@id/settingImageView" android:padding="11.0dip" android:layout_width="45.0dip" android:layout_height="45.0dip" android:src="@drawable/b4m" android:scaleType="centerInside" android:contentDescription="@string/ii" style="@style/ue" /> <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/cl_signin" android:visibility="gone" android:layout_width="60.0dip" android:layout_height="45.0dip" android:layout_marginStart="5.0dip" android:layout_marginEnd="20.0dip" style="@style/ue"> <TextView android:textSize="12.0dip" android:textColor="@color/ep" android:gravity="center_vertical" android:id="@id/tv_icon_signin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="签到" android:drawableLeft="@drawable/ado" android:drawablePadding="5.0dip" bind:layout_constraintBottom_toBottomOf="parent" bind:layout_constraintEnd_toEndOf="parent" bind:layout_constraintStart_toStartOf="parent" bind:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@id/iv_signin_gif" android:visibility="gone" android:layout_width="60.0dip" android:layout_height="47.0dip" bind:layout_constraintBottom_toBottomOf="parent" bind:layout_constraintLeft_toLeftOf="parent" bind:layout_constraintRight_toRightOf="parent" bind:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@id/i_signin_red" android:visibility="gone" android:layout_width="10.0dip" android:layout_height="10.0dip" android:src="@drawable/jv" bind:layout_constraintEnd_toEndOf="@id/tv_icon_signin" bind:layout_constraintStart_toEndOf="@id/tv_icon_signin" bind:layout_constraintTop_toTopOf="@id/tv_icon_signin" /> </androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout> </RelativeLayout> <com.luojilab.me.ui.view.HomeScrollView android:id="@id/globalScrollView" android:scrollbars="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:overScrollMode="never" android:translationZ="-1.0dip"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@id/shadowImageView" android:layout_width="fill_parent" android:layout_height="230.0dip" android:scaleType="centerCrop" /> <View android:id="@id/shadowTopView" android:background="@color/dk" android:layout_width="fill_parent" android:layout_height="230.0dip" /> <LinearLayout android:orientation="vertical" android:id="@id/ll_banner_group" android:tag="binding_1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="85.0dip"> <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="150.0dip"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/headerLayout" android:paddingTop="10.0dip" android:paddingBottom="15.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content"> <com.luojilab.ddbaseframework.widget.FlagImageIcon android:id="@id/fl_header" android:layout_width="60.0dip" android:layout_height="60.0dip" android:layout_marginStart="15.0dip" bind:cancel_border="false" bind:layout_constraintLeft_toLeftOf="parent" bind:layout_constraintTop_toTopOf="parent" /> <TextView android:textSize="22.0dip" android:textStyle="bold" android:textColor="@color/ep" android:id="@id/nicknameTextView" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:lines="1" android:singleLine="true" bind:layout_constraintBottom_toTopOf="@id/tv_certificate" bind:layout_constraintLeft_toRightOf="@id/fl_header" bind:layout_constraintRight_toLeftOf="@id/tv_account_detail_logined" bind:layout_constraintTop_toTopOf="@id/fl_header" /> <TextView android:textSize="12.0dip" android:textColor="@color/n7" android:id="@id/tv_certificate" android:background="@drawable/rl" android:paddingLeft="10.0dip" android:paddingTop="1.5dip" android:paddingRight="10.0dip" android:paddingBottom="1.5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="勋章0" bind:layout_constraintBottom_toBottomOf="@id/fl_header" bind:layout_constraintLeft_toLeftOf="@id/nicknameTextView" bind:layout_constraintTop_toBottomOf="@id/nicknameTextView" /> <TextView android:textSize="12.0dip" android:textColor="@color/n7" android:id="@id/medal" android:background="@drawable/rl" android:paddingLeft="10.0dip" android:paddingTop="1.5dip" android:paddingRight="10.0dip" android:paddingBottom="1.5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:text="证书0" bind:layout_constraintBottom_toBottomOf="@id/tv_certificate" bind:layout_constraintLeft_toRightOf="@id/tv_certificate" bind:layout_constraintTop_toTopOf="@id/tv_certificate" /> <ImageView android:gravity="center" android:id="@id/tv_account_detail_logined" android:padding="5.0dip" android:layout_width="50.0dip" android:layout_height="50.0dip" android:layout_marginRight="11.0dip" android:src="@drawable/b39" android:scaleType="centerInside" android:layout_centerVertical="true" bind:layout_constraintBottom_toBottomOf="@id/fl_header" bind:layout_constraintRight_toRightOf="parent" bind:layout_constraintTop_toTopOf="@id/fl_header" /> <LinearLayout android:gravity="center_horizontal" android:orientation="vertical" android:id="@id/ll_note_counts" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="25.0dip" bind:layout_constraintLeft_toLeftOf="parent" bind:layout_constraintRight_toLeftOf="@id/ll_friendsNum" bind:layout_constraintTop_toBottomOf="@id/fl_header"> <TextView android:textSize="20.0dip" android:textColor="@color/ep" android:gravity="center" android:id="@id/tv_note_counts" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0" /> <TextView android:textSize="11.0dip" android:textColor="@color/fo" android:id="@id/tv_note_hint" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我的笔记" /> </LinearLayout> <LinearLayout android:gravity="center_horizontal" android:orientation="vertical" android:id="@id/ll_friendsNum" android:layout_width="0.0dip" android:layout_height="wrap_content" bind:layout_constraintBottom_toBottomOf="@id/ll_note_counts" bind:layout_constraintLeft_toRightOf="@id/ll_note_counts" bind:layout_constraintRight_toLeftOf="@id/ll_fansNum" bind:layout_constraintTop_toTopOf="@id/ll_note_counts"> <TextView android:textSize="20.0dip" android:textColor="@color/ep" android:gravity="center" android:id="@id/friendsNum" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0" /> <TextView android:textSize="11.0dip" android:textColor="@color/fo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我关注的人" /> </LinearLayout> <LinearLayout android:gravity="center_horizontal" android:orientation="vertical" android:id="@id/ll_fansNum" android:layout_width="0.0dip" android:layout_height="wrap_content" bind:layout_constraintBottom_toBottomOf="@id/ll_note_counts" bind:layout_constraintLeft_toRightOf="@id/ll_friendsNum" bind:layout_constraintRight_toLeftOf="@id/ff_study_time" bind:layout_constraintTop_toTopOf="@id/ll_note_counts"> <TextView android:textSize="20.0dip" android:textColor="@color/ep" android:gravity="center" android:id="@id/fansNum" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0" /> <TextView android:textSize="11.0dip" android:textColor="@color/fo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="关注我的人" /> </LinearLayout> <View android:id="@id/fansRedPointView" android:background="@drawable/rj" android:layout_width="8.0dip" android:layout_height="8.0dip" android:layout_marginLeft="35.0dip" android:layout_marginBottom="10.0dip" bind:layout_constraintLeft_toLeftOf="@id/ll_fansNum" bind:layout_constraintRight_toRightOf="@id/ll_fansNum" bind:layout_constraintTop_toTopOf="@id/ll_fansNum" /> <LinearLayout android:gravity="center_horizontal" android:orientation="vertical" android:id="@id/ff_study_time" android:layout_width="0.0dip" android:layout_height="wrap_content" bind:layout_constraintBottom_toBottomOf="@id/ll_note_counts" bind:layout_constraintLeft_toRightOf="@id/ll_fansNum" bind:layout_constraintRight_toRightOf="parent" bind:layout_constraintTop_toTopOf="@id/ll_note_counts"> <LinearLayout android:gravity="center_horizontal" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:textSize="20.0dip" android:textColor="@color/ep" android:gravity="center" android:id="@id/tv_study_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="3.0dip" android:text="9" /> </LinearLayout> <TextView android:textSize="11.0dip" android:textColor="@color/fo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="今日学习" /> </LinearLayout> <View android:id="@id/v_user_red_tip" android:background="@drawable/aq" android:visibility="gone" android:layout_width="8.0dip" android:layout_height="8.0dip" bind:layout_constraintBottom_toBottomOf="@id/tv_account_detail_logined" bind:layout_constraintRight_toLeftOf="@id/tv_account_detail_logined" bind:layout_constraintTop_toTopOf="@id/tv_account_detail_logined" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/cl_tourist" android:visibility="visible" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:textSize="16.0dip" android:textColor="@color/o_" android:gravity="center" android:id="@id/tv_login" android:background="@drawable/rk" android:layout_width="200.0dip" android:layout_height="38.0dip" android:text="登录/注册" bind:layout_constraintBottom_toBottomOf="parent" bind:layout_constraintLeft_toLeftOf="parent" bind:layout_constraintRight_toRightOf="parent" bind:layout_constraintTop_toTopOf="parent" /> <TextView android:textSize="11.0dip" android:textColor="@color/fo" android:gravity="center" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="15.0dip" android:text="登录 / 注册可解锁完整功能" bind:layout_constraintLeft_toLeftOf="@id/tv_login" bind:layout_constraintRight_toRightOf="@id/tv_login" bind:layout_constraintTop_toBottomOf="@id/tv_login" /> </androidx.constraintlayout.widget.ConstraintLayout> </FrameLayout> <com.ms.banner.Banner android:id="@id/banner" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="50.0dip" android:layout_marginTop="10.0dip" bind:banner_default_image="@drawable/b5d" bind:indicator_drawable_selected="@drawable/rs" bind:indicator_drawable_unselected="@drawable/rt" bind:indicator_height="3.0dip" bind:indicator_margin="7.0dip" bind:indicator_padding="1.5dip" bind:indicator_width="8.0dip" /> <LinearLayout android:orientation="vertical" android:id="@id/ll_group" android:background="@drawable/r1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:layout_marginTop="10.0dip" android:layout_marginRight="10.0dip"> <FrameLayout android:id="@id/university" android:visibility="visible" android:clickable="true" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <ImageView android:layout_gravity="center_vertical" android:id="@id/universityIcon" android:background="@drawable/b3k" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" /> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="46.0dip" android:text="@string/h7" /> <ImageView android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" android:scaleType="centerInside" /> <TextView android:textSize="12.0dip" android:textColor="@color/hk" android:layout_gravity="center|right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30.0dip" android:text="进入" /> </FrameLayout> <FrameLayout android:id="@id/scoreLayout" android:visibility="gone" android:clickable="true" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:id="@id/scoreTitleTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="得到实验室" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> <TextView android:textSize="14.0dip" android:textColor="@color/hk" android:layout_gravity="center|right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30.0dip" android:text="抢先体验" /> <View android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" /> </FrameLayout> <FrameLayout android:id="@id/enterprise" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <View android:id="@id/v_enterprise" android:background="@color/l9" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" /> <ImageView android:layout_gravity="center_vertical" android:background="@drawable/b4t" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" /> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:id="@id/tv_enterprise" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="46.0dip" /> <ImageView android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" android:scaleType="centerInside" /> <TextView android:textSize="12.0dip" android:textColor="@color/hk" android:layout_gravity="center|right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30.0dip" android:text="进入" /> </FrameLayout> </LinearLayout> <include android:id="@id/layout_account" layout="@layout/me_fragment_layout_account" /> <include android:id="@id/layout_content" layout="@layout/me_fragment_layout_content" /> <include android:id="@id/layout_achievement" layout="@layout/me_fragment_layout_achievement" /> <LinearLayout android:orientation="vertical" android:id="@id/ll_teacher_group" android:background="@drawable/r1" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:layout_marginTop="10.0dip" android:layout_marginRight="10.0dip"> <TextView android:textSize="16.0dip" android:textStyle="bold" android:textColor="@color/dp" android:id="@id/label_teacher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginTop="15.0dip" android:text="得到工作台" /> <com.luojilab.netsupport.autopoint.widget.collection.DDCollectionView android:id="@id/cv_teacher" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:background="@drawable/r1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:layout_marginTop="10.0dip" android:layout_marginRight="10.0dip"> <FrameLayout android:id="@id/scholarshipLayout" android:background="@drawable/r1" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="我的奖学金" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> <TextView android:textSize="12.0dip" android:textColor="@color/n7" android:layout_gravity="center|right" android:id="@id/scholarshipNumTextView" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30.0dip" /> <View android:layout_gravity="bottom" android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" /> </FrameLayout> <FrameLayout android:id="@id/moneyCardLayout" android:background="@drawable/r1" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="得到财富卡" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> <View android:layout_gravity="bottom" android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" /> </FrameLayout> <FrameLayout android:id="@id/zxMoneyCardLayout" android:background="@drawable/r1" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="信・听书卡" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> <View android:layout_gravity="bottom" android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" /> </FrameLayout> <FrameLayout android:id="@id/messageLayout" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="课程留言管理" /> <View android:layout_gravity="center|right" android:id="@id/messageArrView" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> <TextView android:textSize="17.0dip" android:textColor="@color/ep" android:layout_gravity="center|right" android:id="@id/messageNumTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30.0dip" /> <View android:layout_gravity="bottom" android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" /> </FrameLayout> <FrameLayout android:id="@id/tuijianLayout" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="推荐「得到」给好友" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> <TextView android:textSize="12.0dip" android:textColor="@color/n7" android:layout_gravity="center|right" android:id="@id/couponTipsTextView" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="30.0dip" /> <View android:layout_gravity="bottom" android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" /> </FrameLayout> <RelativeLayout android:id="@id/wrqLayout" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="得到荣誉赞助人" android:layout_centerVertical="true" /> <View android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" android:layout_alignParentRight="true" android:layout_centerVertical="true" /> <View android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:layout_alignParentBottom="true" /> </RelativeLayout> <FrameLayout android:id="@id/helpCenterLayout" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="帮助中心" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> </FrameLayout> <FrameLayout android:id="@id/devCenterLayout" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="50.0dip" style="@style/ue"> <View android:background="@color/l9" android:layout_width="fill_parent" android:layout_height="1.5px" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:layout_alignParentBottom="true" /> <TextView android:textSize="14.0dip" android:textColor="@color/ep" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:text="产研实验室" /> <View android:layout_gravity="center|right" android:background="@drawable/b39" android:layout_width="20.0dip" android:layout_height="20.0dip" android:layout_marginRight="5.0dip" /> </FrameLayout> </LinearLayout> <View android:id="@id/hiddenFeaturesOpen" android:background="@color/mf" android:layout_width="fill_parent" android:layout_height="200.0dip" /> </LinearLayout> </RelativeLayout> </com.luojilab.me.ui.view.HomeScrollView> </androidx.coordinatorlayout.widget.CoordinatorLayout>
me_fragment_layout.xml.xml
apk解压以后,发现竟然有8个classes.dex 看来代码量有点大用到了MultiDex 感兴趣的小伙伴可以移步参考链接传送门
为方法数超过 64K 的应用启用 MultiDex 被混淆了,这代码没法看啦!
支付宝的dex包竟然达15个之多,看来代码量比较大 先去strings.xml逛一下 感觉里面的信息是几年前的支付宝,过时的信息,找了一个关键字key也确实没有收获 去drawable里面去碰下运气 有个很鸡贼的public.xml文件 似乎把图片资源文件加密处理了 好像layout文件夹下的xml也不是“真”的,没翻到“关键”界面
values文件夹下的layouts.xml有嫌疑 有些关联信息,但是无法挖出有价值的线索。暂时没尝试dex反编译的勇气。 先打住,只能说支付宝确实是挺安全的app
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
想要了解下现有市场上的发布app的内部机制组成。
但是光靠乃氪金狗眼连网页也是原生UI都分不清楚
apk反编译
感觉安卓apk反编译这条路相对可行一点,毕竟我在以前15年前的时候就听说我同学把微信反编译出来看他代码了。
实验apk
感觉市场上的apk弄不好会搞点混淆啥的,不如先找一个简单极致的apk先来一波小白鼠
就直接用我们前面测试自动打包的制品库里面下
下载工具
放到一个无中文的目录
解压dex2jar和jd-gui
apktool可以提取出apk的resource,好像除了自己写的layout还打进去很多其他系统的xml
首先把apk改后缀名zip,再unzip。
得到classes.dex
再拷贝到dex-tools-2.1目录后运行
打开jd-gui.exe
File->Open->classes-dex2jar.jar
相关参考资料
安卓app apk反编译
得到app分析
好了,开胃小菜上完改上正菜了
去官网把apk弄到手
先执行apktool看下得到的资源和配置
先看AndroidManifest.xml
命名暴露了是用flutter开发的
先抓下底部工具栏
通过菜单的图标资源反向查找
名字叫z_luojilab_player_home_tab_layout.xml,看上去八九不离十
再找下“我的”界面
me_fragment_layout.xml.xml
apk解压以后,发现竟然有8个classes.dex
看来代码量有点大用到了MultiDex
感兴趣的小伙伴可以移步参考链接传送门
为方法数超过 64K 的应用启用 MultiDex
被混淆了,这代码没法看啦!
支付宝app分析
支付宝的dex包竟然达15个之多,看来代码量比较大
先去strings.xml逛一下
感觉里面的信息是几年前的支付宝,过时的信息,找了一个关键字key也确实没有收获
去drawable里面去碰下运气
有个很鸡贼的public.xml文件
似乎把图片资源文件加密处理了
好像layout文件夹下的xml也不是“真”的,没翻到“关键”界面
values文件夹下的layouts.xml有嫌疑
有些关联信息,但是无法挖出有价值的线索。暂时没尝试dex反编译的勇气。
先打住,只能说支付宝确实是挺安全的app
The text was updated successfully, but these errors were encountered: