├── .DS_Store ├── README.md ├── apktool_2.0.0rc4.jar ├── dexEncrypt ├── .DS_Store ├── AndroidManifest.xml ├── androidketest.apk ├── androidketest │ ├── AndroidManifest.xml │ ├── META-INF │ │ ├── CERT.RSA │ │ ├── CERT.SF │ │ └── MANIFEST.MF │ ├── lib │ │ ├── armeabi-v7a │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ │ ├── armeabi │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ │ ├── mips │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ │ └── x86 │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ ├── res │ │ ├── drawable-hdpi-v4 │ │ │ └── ic_launcher.png │ │ ├── drawable-mdpi-v4 │ │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi-v4 │ │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi-v4 │ │ │ └── ic_launcher.png │ │ └── layout │ │ │ └── activity_main.xml │ └── resources.arsc ├── app-release.apk ├── app-sign.apk ├── app-unsign.apk ├── backup │ ├── .DS_Store │ ├── com │ │ └── android │ │ │ └── dexunshell │ │ │ ├── .DS_Store │ │ │ ├── CZsEncrypt.java │ │ │ ├── MyClassLoader.java │ │ │ ├── ProxyApplication.java │ │ │ └── RefInvoke.java │ └── encrypt │ │ ├── CZsEncrypt.c │ │ ├── CZsEncrypt.h │ │ ├── DexShellTool.java │ │ ├── app_dex_encrypt.c │ │ └── app_dex_encrypt.h ├── config.cof ├── encrypt │ ├── .DS_Store │ ├── CZsEncrypt.c │ ├── CZsEncrypt.class │ ├── CZsEncrypt.h │ ├── CZsEncrypt.java │ ├── DexShellTool.class │ ├── DexShellTool.java │ ├── app_dex_encrypt.c │ ├── app_dex_encrypt.h │ ├── endex.so │ ├── libendex.so │ └── testDex.sh ├── gernate_keapk.sh ├── preload.apk ├── preload │ ├── AndroidManifest.xml │ ├── classes.dex │ ├── lib │ │ ├── armeabi-v7a │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ │ ├── armeabi │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ │ ├── mips │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ │ └── x86 │ │ │ ├── libcrypto.so │ │ │ ├── libendex.so │ │ │ └── libssl.so │ ├── res │ │ ├── anim │ │ │ ├── abc_fade_in.xml │ │ │ ├── abc_fade_out.xml │ │ │ ├── abc_slide_in_bottom.xml │ │ │ ├── abc_slide_in_top.xml │ │ │ ├── abc_slide_out_bottom.xml │ │ │ └── abc_slide_out_top.xml │ │ ├── color │ │ │ ├── abc_background_cache_hint_selector_material_dark.xml │ │ │ ├── abc_background_cache_hint_selector_material_light.xml │ │ │ ├── abc_primary_text_disable_only_material_dark.xml │ │ │ ├── abc_primary_text_disable_only_material_light.xml │ │ │ ├── abc_primary_text_material_dark.xml │ │ │ ├── abc_primary_text_material_light.xml │ │ │ ├── abc_search_url_text.xml │ │ │ ├── abc_secondary_text_material_dark.xml │ │ │ └── abc_secondary_text_material_light.xml │ │ ├── drawable-hdpi-v4 │ │ │ ├── abc_ab_share_pack_holo_dark.9.png │ │ │ ├── abc_ab_share_pack_holo_light.9.png │ │ │ ├── abc_btn_check_to_on_mtrl_000.png │ │ │ ├── abc_btn_check_to_on_mtrl_015.png │ │ │ ├── abc_btn_radio_to_on_mtrl_000.png │ │ │ ├── abc_btn_radio_to_on_mtrl_015.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00001.9.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00012.9.png │ │ │ ├── abc_cab_background_top_mtrl_alpha.9.png │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_clear_mtrl_alpha.png │ │ │ ├── abc_ic_commit_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_go_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ ├── abc_ic_menu_moreoverflow_mtrl_alpha.png │ │ │ ├── abc_ic_menu_paste_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_selectall_mtrl_alpha.png │ │ │ ├── abc_ic_menu_share_mtrl_alpha.png │ │ │ ├── abc_ic_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_voice_search_api_mtrl_alpha.png │ │ │ ├── abc_list_divider_mtrl_alpha.9.png │ │ │ ├── abc_list_focused_holo.9.png │ │ │ ├── abc_list_longpressed_holo.9.png │ │ │ ├── abc_list_pressed_holo_dark.9.png │ │ │ ├── abc_list_pressed_holo_light.9.png │ │ │ ├── abc_list_selector_disabled_holo_dark.9.png │ │ │ ├── abc_list_selector_disabled_holo_light.9.png │ │ │ ├── abc_menu_hardkey_panel_mtrl_mult.9.png │ │ │ ├── abc_popup_background_mtrl_mult.9.png │ │ │ ├── abc_spinner_mtrl_am_alpha.9.png │ │ │ ├── abc_switch_track_mtrl_alpha.9.png │ │ │ ├── abc_tab_indicator_mtrl_alpha.9.png │ │ │ ├── abc_textfield_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_default_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_default_mtrl_alpha.9.png │ │ │ └── ic_launcher.png │ │ ├── drawable-ldrtl-hdpi-v17 │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ └── abc_spinner_mtrl_am_alpha.9.png │ │ ├── drawable-ldrtl-mdpi-v17 │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ └── abc_spinner_mtrl_am_alpha.9.png │ │ ├── drawable-ldrtl-xhdpi-v17 │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ └── abc_spinner_mtrl_am_alpha.9.png │ │ ├── drawable-ldrtl-xxhdpi-v17 │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ └── abc_spinner_mtrl_am_alpha.9.png │ │ ├── drawable-ldrtl-xxxhdpi-v17 │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ └── abc_spinner_mtrl_am_alpha.9.png │ │ ├── drawable-mdpi-v4 │ │ │ ├── abc_ab_share_pack_holo_dark.9.png │ │ │ ├── abc_ab_share_pack_holo_light.9.png │ │ │ ├── abc_btn_check_to_on_mtrl_000.png │ │ │ ├── abc_btn_check_to_on_mtrl_015.png │ │ │ ├── abc_btn_radio_to_on_mtrl_000.png │ │ │ ├── abc_btn_radio_to_on_mtrl_015.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00001.9.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00012.9.png │ │ │ ├── abc_cab_background_top_mtrl_alpha.9.png │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_clear_mtrl_alpha.png │ │ │ ├── abc_ic_commit_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_go_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ ├── abc_ic_menu_moreoverflow_mtrl_alpha.png │ │ │ ├── abc_ic_menu_paste_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_selectall_mtrl_alpha.png │ │ │ ├── abc_ic_menu_share_mtrl_alpha.png │ │ │ ├── abc_ic_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_voice_search_api_mtrl_alpha.png │ │ │ ├── abc_list_divider_mtrl_alpha.9.png │ │ │ ├── abc_list_focused_holo.9.png │ │ │ ├── abc_list_longpressed_holo.9.png │ │ │ ├── abc_list_pressed_holo_dark.9.png │ │ │ ├── abc_list_pressed_holo_light.9.png │ │ │ ├── abc_list_selector_disabled_holo_dark.9.png │ │ │ ├── abc_list_selector_disabled_holo_light.9.png │ │ │ ├── abc_menu_hardkey_panel_mtrl_mult.9.png │ │ │ ├── abc_popup_background_mtrl_mult.9.png │ │ │ ├── abc_spinner_mtrl_am_alpha.9.png │ │ │ ├── abc_switch_track_mtrl_alpha.9.png │ │ │ ├── abc_tab_indicator_mtrl_alpha.9.png │ │ │ ├── abc_textfield_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_default_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_default_mtrl_alpha.9.png │ │ │ └── ic_launcher.png │ │ ├── drawable-v21 │ │ │ └── abc_cab_background_top_material.xml │ │ ├── drawable-xhdpi-v4 │ │ │ ├── abc_ab_share_pack_holo_dark.9.png │ │ │ ├── abc_ab_share_pack_holo_light.9.png │ │ │ ├── abc_btn_check_to_on_mtrl_000.png │ │ │ ├── abc_btn_check_to_on_mtrl_015.png │ │ │ ├── abc_btn_radio_to_on_mtrl_000.png │ │ │ ├── abc_btn_radio_to_on_mtrl_015.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00001.9.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00012.9.png │ │ │ ├── abc_cab_background_top_mtrl_alpha.9.png │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_clear_mtrl_alpha.png │ │ │ ├── abc_ic_commit_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_go_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ ├── abc_ic_menu_moreoverflow_mtrl_alpha.png │ │ │ ├── abc_ic_menu_paste_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_selectall_mtrl_alpha.png │ │ │ ├── abc_ic_menu_share_mtrl_alpha.png │ │ │ ├── abc_ic_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_voice_search_api_mtrl_alpha.png │ │ │ ├── abc_list_divider_mtrl_alpha.9.png │ │ │ ├── abc_list_focused_holo.9.png │ │ │ ├── abc_list_longpressed_holo.9.png │ │ │ ├── abc_list_pressed_holo_dark.9.png │ │ │ ├── abc_list_pressed_holo_light.9.png │ │ │ ├── abc_list_selector_disabled_holo_dark.9.png │ │ │ ├── abc_list_selector_disabled_holo_light.9.png │ │ │ ├── abc_menu_hardkey_panel_mtrl_mult.9.png │ │ │ ├── abc_popup_background_mtrl_mult.9.png │ │ │ ├── abc_spinner_mtrl_am_alpha.9.png │ │ │ ├── abc_switch_track_mtrl_alpha.9.png │ │ │ ├── abc_tab_indicator_mtrl_alpha.9.png │ │ │ ├── abc_textfield_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_default_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_default_mtrl_alpha.9.png │ │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi-v4 │ │ │ ├── abc_ab_share_pack_holo_dark.9.png │ │ │ ├── abc_ab_share_pack_holo_light.9.png │ │ │ ├── abc_btn_check_to_on_mtrl_000.png │ │ │ ├── abc_btn_check_to_on_mtrl_015.png │ │ │ ├── abc_btn_radio_to_on_mtrl_000.png │ │ │ ├── abc_btn_radio_to_on_mtrl_015.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00001.9.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00012.9.png │ │ │ ├── abc_cab_background_top_mtrl_alpha.9.png │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_clear_mtrl_alpha.png │ │ │ ├── abc_ic_commit_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_go_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ ├── abc_ic_menu_moreoverflow_mtrl_alpha.png │ │ │ ├── abc_ic_menu_paste_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_selectall_mtrl_alpha.png │ │ │ ├── abc_ic_menu_share_mtrl_alpha.png │ │ │ ├── abc_ic_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_voice_search_api_mtrl_alpha.png │ │ │ ├── abc_list_divider_mtrl_alpha.9.png │ │ │ ├── abc_list_focused_holo.9.png │ │ │ ├── abc_list_longpressed_holo.9.png │ │ │ ├── abc_list_pressed_holo_dark.9.png │ │ │ ├── abc_list_pressed_holo_light.9.png │ │ │ ├── abc_list_selector_disabled_holo_dark.9.png │ │ │ ├── abc_list_selector_disabled_holo_light.9.png │ │ │ ├── abc_menu_hardkey_panel_mtrl_mult.9.png │ │ │ ├── abc_popup_background_mtrl_mult.9.png │ │ │ ├── abc_spinner_mtrl_am_alpha.9.png │ │ │ ├── abc_switch_track_mtrl_alpha.9.png │ │ │ ├── abc_tab_indicator_mtrl_alpha.9.png │ │ │ ├── abc_textfield_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_default_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_activated_mtrl_alpha.9.png │ │ │ ├── abc_textfield_search_default_mtrl_alpha.9.png │ │ │ └── ic_launcher.png │ │ ├── drawable-xxxhdpi-v4 │ │ │ ├── abc_btn_check_to_on_mtrl_000.png │ │ │ ├── abc_btn_check_to_on_mtrl_015.png │ │ │ ├── abc_btn_radio_to_on_mtrl_000.png │ │ │ ├── abc_btn_radio_to_on_mtrl_015.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00001.9.png │ │ │ ├── abc_btn_switch_to_on_mtrl_00012.9.png │ │ │ ├── abc_ic_ab_back_mtrl_am_alpha.png │ │ │ ├── abc_ic_clear_mtrl_alpha.png │ │ │ ├── abc_ic_menu_copy_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_cut_mtrl_alpha.png │ │ │ ├── abc_ic_menu_moreoverflow_mtrl_alpha.png │ │ │ ├── abc_ic_menu_paste_mtrl_am_alpha.png │ │ │ ├── abc_ic_menu_selectall_mtrl_alpha.png │ │ │ ├── abc_ic_search_api_mtrl_alpha.png │ │ │ ├── abc_ic_voice_search_api_mtrl_alpha.png │ │ │ ├── abc_spinner_mtrl_am_alpha.9.png │ │ │ ├── abc_switch_track_mtrl_alpha.9.png │ │ │ └── abc_tab_indicator_mtrl_alpha.9.png │ │ ├── drawable │ │ │ ├── abc_btn_check_material.xml │ │ │ ├── abc_btn_radio_material.xml │ │ │ ├── abc_cab_background_internal_bg.xml │ │ │ ├── abc_cab_background_top_material.xml │ │ │ ├── abc_edit_text_material.xml │ │ │ ├── abc_item_background_holo_dark.xml │ │ │ ├── abc_item_background_holo_light.xml │ │ │ ├── abc_list_selector_background_transition_holo_dark.xml │ │ │ ├── abc_list_selector_background_transition_holo_light.xml │ │ │ ├── abc_list_selector_holo_dark.xml │ │ │ ├── abc_list_selector_holo_light.xml │ │ │ ├── abc_switch_thumb_material.xml │ │ │ ├── abc_tab_indicator_material.xml │ │ │ └── abc_textfield_search_material.xml │ │ ├── layout-v11 │ │ │ └── abc_screen_content_include.xml │ │ ├── layout-v21 │ │ │ └── abc_screen_toolbar.xml │ │ ├── layout │ │ │ ├── abc_action_bar_title_item.xml │ │ │ ├── abc_action_bar_up_container.xml │ │ │ ├── abc_action_bar_view_list_nav_layout.xml │ │ │ ├── abc_action_menu_item_layout.xml │ │ │ ├── abc_action_menu_layout.xml │ │ │ ├── abc_action_mode_bar.xml │ │ │ ├── abc_action_mode_close_item_material.xml │ │ │ ├── abc_activity_chooser_view.xml │ │ │ ├── abc_activity_chooser_view_include.xml │ │ │ ├── abc_activity_chooser_view_list_item.xml │ │ │ ├── abc_expanded_menu_layout.xml │ │ │ ├── abc_list_menu_item_checkbox.xml │ │ │ ├── abc_list_menu_item_icon.xml │ │ │ ├── abc_list_menu_item_layout.xml │ │ │ ├── abc_list_menu_item_radio.xml │ │ │ ├── abc_popup_menu_item_layout.xml │ │ │ ├── abc_screen_content_include.xml │ │ │ ├── abc_screen_simple.xml │ │ │ ├── abc_screen_simple_overlay_action_mode.xml │ │ │ ├── abc_screen_toolbar.xml │ │ │ ├── abc_search_dropdown_item_icons_2line.xml │ │ │ ├── abc_search_view.xml │ │ │ ├── abc_simple_dropdown_hint.xml │ │ │ ├── activity_main.xml │ │ │ └── support_simple_spinner_dropdown_item.xml │ │ └── menu │ │ │ └── menu_main.xml │ └── resources.arsc ├── preprocess.sh ├── start.sh └── unshell.dex ├── readme.txt └── unshell ├── .classpath ├── .project ├── .settings └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── bin ├── AndroidManifest.xml ├── R.txt ├── classes │ ├── android │ │ └── support │ │ │ └── v7 │ │ │ └── appcompat │ │ │ ├── R$anim.class │ │ │ ├── R$attr.class │ │ │ ├── R$bool.class │ │ │ ├── R$color.class │ │ │ ├── R$dimen.class │ │ │ ├── R$drawable.class │ │ │ ├── R$id.class │ │ │ ├── R$integer.class │ │ │ ├── R$layout.class │ │ │ ├── R$string.class │ │ │ ├── R$style.class │ │ │ ├── R$styleable.class │ │ │ └── R.class │ └── com │ │ ├── android │ │ └── dexunshell │ │ │ ├── I.class │ │ │ ├── Il.class │ │ │ ├── l.class │ │ │ └── lI.class │ │ └── zs │ │ └── unshell │ │ ├── BuildConfig.class │ │ ├── R$anim.class │ │ ├── R$attr.class │ │ ├── R$bool.class │ │ ├── R$color.class │ │ ├── R$dimen.class │ │ ├── R$drawable.class │ │ ├── R$id.class │ │ ├── R$integer.class │ │ ├── R$layout.class │ │ ├── R$string.class │ │ ├── R$style.class │ │ ├── R$styleable.class │ │ └── R.class └── jarlist.cache ├── gen ├── android │ └── support │ │ └── v7 │ │ └── appcompat │ │ └── R.java └── com │ └── zs │ └── unshell │ ├── BuildConfig.java │ └── R.java ├── ic_launcher-web.png ├── libs ├── armeabi-v7a │ └── libendex.so ├── armeabi │ └── libendex.so ├── mips │ └── libendex.so └── x86 │ └── libendex.so ├── proguard-project.txt ├── project.properties ├── res ├── drawable-hdpi │ └── ic_launcher.png ├── drawable-mdpi │ └── ic_launcher.png ├── drawable-xhdpi │ └── ic_launcher.png ├── drawable-xxhdpi │ └── ic_launcher.png └── values │ ├── strings.xml │ └── styles.xml └── src └── com └── android └── dexunshell ├── CZsEncrypt.java ├── MyClassLoader.java ├── ProxyApplication.java └── RefInvoke.java /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # shellApk 2 | apk加壳方案,本方案是用shell脚本实现的,具体见readme.txt 3 | 4 | 这里感谢Jack_Jia的一篇博客 5 | http://blog.csdn.net/androidsecurity/article/details/8678399 -------------------------------------------------------------------------------- /apktool_2.0.0rc4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/apktool_2.0.0rc4.jar -------------------------------------------------------------------------------- /dexEncrypt/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/.DS_Store -------------------------------------------------------------------------------- /dexEncrypt/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/AndroidManifest.xml -------------------------------------------------------------------------------- /dexEncrypt/androidketest.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest.apk -------------------------------------------------------------------------------- /dexEncrypt/androidketest/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/AndroidManifest.xml -------------------------------------------------------------------------------- /dexEncrypt/androidketest/META-INF/CERT.RSA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/META-INF/CERT.RSA -------------------------------------------------------------------------------- /dexEncrypt/androidketest/META-INF/CERT.SF: -------------------------------------------------------------------------------- 1 | Signature-Version: 1.0 2 | SHA1-Digest-Manifest: JSdde+H/nS4fBVzWecx2Yc2f2yA= 3 | Created-By: 1.0 (Android) 4 | 5 | Name: lib/armeabi-v7a/libcrypto.so 6 | SHA1-Digest: W1TRe1aR2RXDD6Vzf9MpLSiBM+k= 7 | 8 | Name: lib/x86/libcrypto.so 9 | SHA1-Digest: OMkyUkIm/T1zWv5TtTpCa2QpS60= 10 | 11 | Name: AndroidManifest.xml 12 | SHA1-Digest: eoD2db1MDMZ9Y7te9sAGuxoPVrU= 13 | 14 | Name: res/drawable-hdpi-v4/ic_launcher.png 15 | SHA1-Digest: nVLQ/wUjf9D4KSB2I7WqoHR14JY= 16 | 17 | Name: res/layout/activity_main.xml 18 | SHA1-Digest: XSDAubB+66D3+LDU4FlbiZLzhNg= 19 | 20 | Name: lib/mips/libssl.so 21 | SHA1-Digest: iHJN3zg71vrVnpUM/6tCOBhonRE= 22 | 23 | Name: lib/mips/libcrypto.so 24 | SHA1-Digest: 2pr5NAH/u98uII7tsf0RytN7oiE= 25 | 26 | Name: res/drawable-mdpi-v4/ic_launcher.png 27 | SHA1-Digest: NBFXy1maYHW4TAiVCw6R9+EBNqI= 28 | 29 | Name: lib/armeabi-v7a/libssl.so 30 | SHA1-Digest: ilps8dqxZKqDqbU8KaTeYVRL9+c= 31 | 32 | Name: res/drawable-xhdpi-v4/ic_launcher.png 33 | SHA1-Digest: qLB+xSuTsdod1eS2aPJel/A5PvE= 34 | 35 | Name: lib/armeabi/libssl.so 36 | SHA1-Digest: mF2PKP7JvXMyEXc8YZTNTPM0+8A= 37 | 38 | Name: lib/mips/libendex.so 39 | SHA1-Digest: c8grFuOqBNMN+k0UiPfsJBi78TE= 40 | 41 | Name: lib/armeabi/libendex.so 42 | SHA1-Digest: x7Z1L2T9G9hUA7OrwMariIX8mGM= 43 | 44 | Name: lib/armeabi-v7a/libendex.so 45 | SHA1-Digest: 1gMk0qrMseJlOunYLtrltDlGQJU= 46 | 47 | Name: lib/x86/libssl.so 48 | SHA1-Digest: FcTel4kZ16aZr8TIsd7nKFUpTJU= 49 | 50 | Name: resources.arsc 51 | SHA1-Digest: bmPVrfs2qgnmz4OLcJxBkwz0RXY= 52 | 53 | Name: classes.dex 54 | SHA1-Digest: g0i3bKIodChKrgOywR962uMMtn8= 55 | 56 | Name: res/drawable-xxhdpi-v4/ic_launcher.png 57 | SHA1-Digest: W7nSszMeL1x0eIt3K2CoCIHU6Qg= 58 | 59 | Name: lib/armeabi/libcrypto.so 60 | SHA1-Digest: qZxC3p0hJeCqX+hXERM2QjrKBr8= 61 | 62 | Name: lib/x86/libendex.so 63 | SHA1-Digest: mkHlLgfAb8z0cavaQjPNiOdmqXg= 64 | 65 | -------------------------------------------------------------------------------- /dexEncrypt/androidketest/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Created-By: 1.0 (Android) 3 | 4 | Name: lib/armeabi-v7a/libcrypto.so 5 | SHA1-Digest: 1i4Mv13uFvu7/5Jy2Lc4JX47S78= 6 | 7 | Name: lib/x86/libcrypto.so 8 | SHA1-Digest: /mwzLPPtanvIdlpnp0ZAlR439ng= 9 | 10 | Name: AndroidManifest.xml 11 | SHA1-Digest: a0JmtVnpEuzsE+80HBBfuEfTcDY= 12 | 13 | Name: res/drawable-hdpi-v4/ic_launcher.png 14 | SHA1-Digest: Nq8q3HeTluE5JNCBpVvNy3BXtJI= 15 | 16 | Name: res/layout/activity_main.xml 17 | SHA1-Digest: mPAYi+9sKduSKDiN5TTMu+tEZ9A= 18 | 19 | Name: lib/mips/libssl.so 20 | SHA1-Digest: cdOQstptZvYHQbQdutAzCUg9ijw= 21 | 22 | Name: lib/mips/libcrypto.so 23 | SHA1-Digest: UUjqYal6OGkqgaPdknqHCC+iC50= 24 | 25 | Name: res/drawable-mdpi-v4/ic_launcher.png 26 | SHA1-Digest: RRxOSvpmhVfCwiprVV/wZlaqQpw= 27 | 28 | Name: lib/armeabi-v7a/libssl.so 29 | SHA1-Digest: R/Hv650LUv5Lp/zL1Eb8xyQKsMw= 30 | 31 | Name: res/drawable-xhdpi-v4/ic_launcher.png 32 | SHA1-Digest: AfPh3OJoypH966MludSW6f1RHg4= 33 | 34 | Name: lib/armeabi/libssl.so 35 | SHA1-Digest: zO9SM0xN195rNuPnj7t1PbzO7us= 36 | 37 | Name: lib/mips/libendex.so 38 | SHA1-Digest: 4zWWCqTzqxSehWOtXmXkKJ8dx/c= 39 | 40 | Name: lib/armeabi/libendex.so 41 | SHA1-Digest: chfzx5RYqs+WKp2nV7GvrjnJGYY= 42 | 43 | Name: lib/armeabi-v7a/libendex.so 44 | SHA1-Digest: w8DK5YjD/FhewXhEtlJwLnWpOyg= 45 | 46 | Name: lib/x86/libssl.so 47 | SHA1-Digest: AjEVu88l8pXhHhoMOxcA7/nWAt4= 48 | 49 | Name: resources.arsc 50 | SHA1-Digest: saT1Fx5dLiEgTQxPDKaP2bsb96Y= 51 | 52 | Name: classes.dex 53 | SHA1-Digest: lSt7mzxsqIn/tzdhHJN8xtAqBac= 54 | 55 | Name: res/drawable-xxhdpi-v4/ic_launcher.png 56 | SHA1-Digest: GVIfdEOBv4gEny2T1jDhGGsZOBo= 57 | 58 | Name: lib/armeabi/libcrypto.so 59 | SHA1-Digest: 58TQnthBUWkkvNhui8PnDj92aek= 60 | 61 | Name: lib/x86/libendex.so 62 | SHA1-Digest: JHe9GILc5p4uvgN78n7F78SsOT4= 63 | 64 | -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/armeabi-v7a/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/armeabi-v7a/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/armeabi-v7a/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/armeabi-v7a/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/armeabi-v7a/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/armeabi-v7a/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/armeabi/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/armeabi/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/armeabi/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/armeabi/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/armeabi/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/armeabi/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/mips/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/mips/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/mips/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/mips/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/mips/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/mips/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/x86/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/x86/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/x86/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/x86/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/lib/x86/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/lib/x86/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/androidketest/res/drawable-hdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/res/drawable-hdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/androidketest/res/drawable-mdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/res/drawable-mdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/androidketest/res/drawable-xhdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/res/drawable-xhdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/androidketest/res/drawable-xxhdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/res/drawable-xxhdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/androidketest/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/res/layout/activity_main.xml -------------------------------------------------------------------------------- /dexEncrypt/androidketest/resources.arsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/androidketest/resources.arsc -------------------------------------------------------------------------------- /dexEncrypt/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/app-release.apk -------------------------------------------------------------------------------- /dexEncrypt/app-sign.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/app-sign.apk -------------------------------------------------------------------------------- /dexEncrypt/app-unsign.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/app-unsign.apk -------------------------------------------------------------------------------- /dexEncrypt/backup/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/backup/.DS_Store -------------------------------------------------------------------------------- /dexEncrypt/backup/com/android/dexunshell/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/backup/com/android/dexunshell/.DS_Store -------------------------------------------------------------------------------- /dexEncrypt/backup/com/android/dexunshell/CZsEncrypt.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | /** 4 | * Created by lvqiang on 15/3/16. 5 | */ 6 | public class CZsEncrypt { 7 | static { 8 | System.loadLibrary("endex"); 9 | } 10 | 11 | public static native byte[] d(byte[] _byte,int offset,int len); 12 | 13 | public static native byte[] e(byte[] _byte,int offset,int len); 14 | } 15 | -------------------------------------------------------------------------------- /dexEncrypt/backup/com/android/dexunshell/MyClassLoader.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | import dalvik.system.DexClassLoader; 4 | 5 | public class MyClassLoader extends DexClassLoader { 6 | 7 | public MyClassLoader(String l, String I, 8 | String ll, ClassLoader lI) { 9 | super(l, I, ll, lI); 10 | } 11 | 12 | public Class loadClass(String className) throws ClassNotFoundException { 13 | // TODO Auto-generated method stub 14 | return super.loadClass(className, false); 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /dexEncrypt/backup/com/android/dexunshell/ProxyApplication.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | import java.io.BufferedInputStream; 4 | import java.io.ByteArrayInputStream; 5 | import java.io.ByteArrayOutputStream; 6 | import java.io.DataInputStream; 7 | import java.io.File; 8 | import java.io.FileInputStream; 9 | import java.io.FileOutputStream; 10 | import java.io.IOException; 11 | import java.io.RandomAccessFile; 12 | import java.lang.ref.WeakReference; 13 | import java.util.ArrayList; 14 | import java.util.HashMap; 15 | import java.util.Iterator; 16 | import java.util.Map; 17 | import java.util.zip.ZipEntry; 18 | import java.util.zip.ZipInputStream; 19 | 20 | import dalvik.system.DexClassLoader; 21 | import android.app.Application; 22 | import android.app.Instrumentation; 23 | import android.content.Context; 24 | import android.content.pm.ApplicationInfo; 25 | import android.content.pm.PackageManager; 26 | import android.content.pm.PackageManager.NameNotFoundException; 27 | import android.os.Bundle; 28 | import android.util.Log; 29 | 30 | public class ProxyApplication extends Application { 31 | 32 | 33 | // private static final String appkey = "APPLICATION_CLASS_NAME"; 34 | private String apkFileName; 35 | private String odexPath; 36 | private String libPath; 37 | private MyClassLoader dLoader; 38 | 39 | // 40 | // protected void attachBaseContext(Context base) { 41 | // super.attachBaseContext(base); 42 | // try { 43 | // 44 | // 45 | // } catch (Exception e) { 46 | // // TODO Auto-generated catch block 47 | // e.printStackTrace(); 48 | // } 49 | // } 50 | 51 | 52 | public void onCreate() { 53 | Log.v(this.getClass().getName(),"先有aplication"); 54 | { 55 | try { 56 | File odex = this.getDir("payload_odex", MODE_PRIVATE); 57 | File dex = this.getDir("payload_dex", MODE_PRIVATE); 58 | File buf = this.getDir("payload_buf", MODE_PRIVATE); 59 | File libs = this.getDir("lib", MODE_PRIVATE); 60 | 61 | odexPath = odex.getAbsolutePath(); 62 | Log.e(this.getClass().getName(),"壳工程odexPath----"+odexPath); 63 | libPath = libs.getAbsolutePath(); 64 | Log.e(this.getClass().getName(),"壳libPath----"+libPath); 65 | apkFileName = dex.getAbsolutePath() + "/classes.dex"; 66 | Log.e(this.getClass().getName(),"壳工程apkFileName----"+apkFileName); 67 | String bufName = buf.getAbsolutePath() + "/buffer.dex"; 68 | File dexFile = new File(apkFileName); 69 | if (!dexFile.exists()) 70 | dexFile.createNewFile(); 71 | File bufFile = new File(bufName); 72 | if (!bufFile.exists()) 73 | bufFile.createNewFile(); 74 | RandomAccessFile bufile = new RandomAccessFile(bufName, "rw"); 75 | // 读取程序classes.dex文件 76 | readDexFileFromApk(bufile); 77 | // 分离出解壳后的apk文件已用于动态加载 78 | this.splitPayLoadFromDex(bufile); 79 | bufile.close(); 80 | // 配置动态加载环境 81 | Object currentActivityThread = RefInvoke.invokeStaticMethod( 82 | "android.app.ActivityThread", "currentActivityThread", 83 | new Class[]{}, new Object[]{}); 84 | String packageName = this.getPackageName(); 85 | Log.e(this.getClass().getName(),"壳创建activitycontext----"+packageName); 86 | Map mPackages = (Map) RefInvoke.getFieldOjbect( 87 | "android.app.ActivityThread", currentActivityThread, 88 | "mPackages"); 89 | WeakReference wr = (WeakReference) mPackages.get(packageName); 90 | dLoader = new MyClassLoader(apkFileName, odexPath, 91 | libPath, (ClassLoader) RefInvoke.getFieldOjbect( 92 | "android.app.LoadedApk", wr.get(), "mClassLoader")); 93 | Log.e(this.getClass().getName(),"壳创建DexClassLoader----"+packageName); 94 | RefInvoke.setFieldOjbect("android.app.LoadedApk", "mClassLoader", 95 | wr.get(), dLoader); 96 | 97 | 98 | 99 | Log.e(this.getClass().getName(),"壳设置DexClassLoader----"+packageName); 100 | 101 | // 如果源应用配置有Appliction对象,则替换为源应用Applicaiton,以便不影响源程序逻辑。 102 | String appClassName = null; 103 | 104 | ApplicationInfo ai = this.getPackageManager() 105 | .getApplicationInfo(this.getPackageName(), 106 | PackageManager.GET_META_DATA); 107 | Log.e(this.getClass().getName(),"壳获取applicationinfo----"+packageName); 108 | Bundle bundle = ai.metaData; 109 | Log.e(this.getClass().getName(),"壳获取bundle----"+packageName); 110 | if (bundle != null 111 | && bundle.containsKey("APPLICATION_CLASS_NAME")) { 112 | appClassName = bundle.getString("APPLICATION_CLASS_NAME"); 113 | } else { 114 | return; 115 | } 116 | 117 | Log.e(this.getClass().getName(),"替换context----"+appClassName); 118 | Application app = (Application)dLoader.loadClass(appClassName).newInstance(); 119 | Log.e(this.getClass().getName(),"壳替换加载application----"+appClassName); 120 | RefInvoke.setFieldOjbect("android.app.ContextImpl", "mOuterContext", this.getBaseContext(), app); 121 | RefInvoke.setFieldOjbect("android.content.ContextWrapper", "mBase", app, this.getBaseContext()); 122 | 123 | Log.e(this.getClass().getName(),"将app设定到binddata中----android.app.ActivityThread->mInitialApplication"); 124 | Object mBoundApplication = RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mBoundApplication"); 125 | Object info = RefInvoke.getFieldOjbect("android.app.ActivityThread$AppBindData", mBoundApplication, "info"); 126 | RefInvoke.setFieldOjbect("android.app.LoadedApk", "mApplication", info, app); 127 | 128 | Log.e(this.getClass().getName(),"获得旧的app对象----android.app.ActivityThread->mInitialApplication"); 129 | Object oldApplication = RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mInitialApplication"); 130 | 131 | Log.e(this.getClass().getName(),"将新的app放到app顶部中----android.app.ActivityThread->mInitialApplication"); 132 | RefInvoke.setFieldOjbect("android.app.ActivityThread", "mInitialApplication", currentActivityThread, app); 133 | 134 | Log.e(this.getClass().getName(),"获得app列表,并将新的app加入到app列表中----android.app.ActivityThread->mAllApplications"); 135 | ArrayList mAllApplications = (ArrayList)RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mAllApplications"); 136 | mAllApplications.remove(oldApplication); 137 | mAllApplications.add(app); 138 | 139 | Log.e(this.getClass().getName(),"获得资源列表----android.app.ActivityThread->mProviderMap"); 140 | Map mProviderMap = (Map) RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mProviderMap"); 141 | 142 | // Object mBoundApplication = RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread,"mBoundApplication"); 143 | // Object loadedApkInfo = RefInvoke.getFieldOjbect("android.app.ActivityThread$AppBindData",mBoundApplication, "info"); 144 | // RefInvoke.setFieldOjbect("android.app.LoadedApk", "mApplication",loadedApkInfo, null); 145 | // Object oldApplication = RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread,"mInitialApplication"); 146 | // ArrayList mAllApplications = (ArrayList) RefInvoke.getFieldOjbect("android.app.ActivityThread", 147 | // currentActivityThread, "mAllApplications"); 148 | // mAllApplications.remove(oldApplication); 149 | // ApplicationInfo appinfo_In_LoadedApk = (ApplicationInfo) RefInvoke 150 | // .getFieldOjbect("android.app.LoadedApk", loadedApkInfo, 151 | // "mApplicationInfo"); 152 | // ApplicationInfo appinfo_In_AppBindData = (ApplicationInfo) RefInvoke 153 | // .getFieldOjbect("android.app.ActivityThread$AppBindData", 154 | // mBoundApplication, "appInfo"); 155 | // 156 | // appinfo_In_LoadedApk.className = appClassName; 157 | // appinfo_In_AppBindData.className = appClassName; 158 | //// Application app = (Application) RefInvoke.invokeMethod( 159 | //// "android.app.LoadedApk", "makeApplication", loadedApkInfo, 160 | //// new Class[]{boolean.class, Instrumentation.class}, 161 | //// new Object[]{false, null}); 162 | // RefInvoke.setFieldOjbect("android.app.ActivityThread", 163 | // "mInitialApplication", currentActivityThread, app); 164 | 165 | 166 | // Map mProviderMap = (Map)RefInvoke.getFieldOjbect( 167 | // "android.app.ActivityThread", currentActivityThread, 168 | // "mProviderMap"); 169 | int count=0; 170 | 171 | 172 | 173 | Iterator it = mProviderMap.values().iterator(); 174 | 175 | while (it.hasNext()) { 176 | Object providerClientRecord = it.next(); 177 | Object localProvider = RefInvoke.getFieldOjbect( 178 | "android.app.ActivityThread$ProviderClientRecord", 179 | providerClientRecord, "mLocalProvider"); 180 | RefInvoke.setFieldOjbect("android.content.ContentProvider", 181 | "mContext", localProvider, app); 182 | count++; 183 | } 184 | Log.e(this.getClass().getName(),"添加资源到资源到----provider"+mProviderMap.size()); 185 | app.onCreate(); 186 | Log.v(this.getClass().getName(),app.getClass().getName()); 187 | Log.v(this.getClass().getName(),"lv.keexample.CApplication"); 188 | Log.v(this.getClass().getName(),appClassName); 189 | // RefInvoke.invokeMethod(appClassName, "onCreate", app, new Class[]{}, new Object[]{}); 190 | } catch (NameNotFoundException e) { 191 | e.printStackTrace(); 192 | } catch (ClassNotFoundException e) { 193 | e.printStackTrace(); 194 | } catch (InstantiationException e) { 195 | e.printStackTrace(); 196 | } catch (IllegalAccessException e) { 197 | e.printStackTrace(); 198 | } catch (IOException e) { 199 | e.printStackTrace(); 200 | } 201 | } 202 | } 203 | 204 | 205 | private void splitPayLoadFromDex(RandomAccessFile bufile) throws IOException { 206 | // 207 | long ablen = bufile.length(); 208 | bufile.seek(ablen-4); 209 | 210 | // byte[] dexlen = bufile.re; 211 | // System.arraycopy(bufile, ablen - 4, dexlen, 0, 4); 212 | // ByteArrayInputStream bais = new ByteArrayInputStream(dexlen); 213 | // DataInputStream in = new DataInputStream(bais); 214 | byte[] intbuf = new byte[4]; 215 | bufile.read(intbuf); 216 | int readInt = byteToInt(intbuf); 217 | Log.e(this.getClass().getName(),"壳解出前classes得长度"+readInt); 218 | // System.out.println(Integer.toHexString(readInt)); 219 | // byte[] newdex = new byte[readInt]; 220 | // System.arraycopy(bufile, ablen - 4 - readInt, newdex, 0, readInt); 221 | // byte[] apkdata = decrypt(newdex); 222 | // Log.e(this.getClass().getName(),"壳解出解密后classes得长度"+apkdata.length); 223 | RandomAccessFile file = new RandomAccessFile(apkFileName,"rw"); 224 | bufile.seek(ablen-4-readInt); 225 | int totallen=0; 226 | int blocklen=0; 227 | byte[] buf_e,buf_d; 228 | while(totallen1024?1024:redus; 261 | // System.arraycopy(apkdata, ablen - 4 - readInt-len, buffer, 0, bl); 262 | // localFileOutputStream.write(buffer); 263 | // len+=bl; 264 | // } 265 | // Log.e(this.getClass().getName(), "壳classes写入文件结束"+len); 266 | // localFileOutputStream.flush(); 267 | // localFileOutputStream.close(); 268 | 269 | 270 | // } catch (IOException localIOException) { 271 | // localIOException.printStackTrace(); 272 | // throw new RuntimeException(localIOException); 273 | // } 274 | // ZipInputStream localZipInputStream = new ZipInputStream( 275 | // new BufferedInputStream(new FileInputStream(file))); 276 | // Log.e(this.getClass().getName(),"壳获取壳名称----"+file.getName()); 277 | // while (true) { 278 | // ZipEntry localZipEntry = localZipInputStream.getNextEntry(); 279 | // if (localZipEntry == null) { 280 | // localZipInputStream.close(); 281 | // break; 282 | // } 283 | // String name = localZipEntry.getName(); 284 | // Log.e(this.getClass().getName(),"壳获取壳名称----provider"+name); 285 | // if (name.startsWith("lib/") && name.endsWith(".so")) { 286 | // File storeFile = new File(libPath + "/" 287 | // + name.substring(name.lastIndexOf('/'))); 288 | // storeFile.createNewFile(); 289 | // FileOutputStream fos = new FileOutputStream(storeFile); 290 | // byte[] arrayOfByte = new byte[1024]; 291 | // while (true) { 292 | // int i = localZipInputStream.read(arrayOfByte); 293 | // if (i == -1) 294 | // break; 295 | // fos.write(arrayOfByte, 0, i); 296 | // } 297 | // fos.flush(); 298 | // fos.close(); 299 | // } 300 | // localZipInputStream.closeEntry(); 301 | // } 302 | // localZipInputStream.close(); 303 | 304 | 305 | } 306 | 307 | /** 308 | * 读取包中classes 309 | * @param bufile 310 | * @return 311 | * @throws IOException 312 | */ 313 | private void readDexFileFromApk(RandomAccessFile bufile) throws IOException { 314 | 315 | // ByteArrayOutputStream dexByteArrayOutputStream = new ByteArrayOutputStream(); 316 | ZipInputStream localZipInputStream = new ZipInputStream( 317 | new BufferedInputStream(new FileInputStream( 318 | this.getApplicationInfo().sourceDir))); 319 | while (true) { 320 | ZipEntry localZipEntry = localZipInputStream.getNextEntry(); 321 | if (localZipEntry == null) { 322 | localZipInputStream.close(); 323 | break; 324 | } 325 | // Log.e(this.getClass().getName(),"壳读取classes----readDexFileFromApk"+localZipEntry.getName()); 326 | if (localZipEntry.getName().equals("classes.dex")) { 327 | byte[] arrayOfByte = new byte[1024]; 328 | while (true) { 329 | int i = localZipInputStream.read(arrayOfByte); 330 | if (i == -1) 331 | break; 332 | bufile.write(arrayOfByte, 0, i); 333 | } 334 | } 335 | localZipInputStream.closeEntry(); 336 | } 337 | localZipInputStream.close(); 338 | // return dexByteArrayOutputStream.toByteArray(); 339 | } 340 | 341 | public static int byteToInt(byte[] _data){ 342 | int l1 = (((int)_data[0])<<24)&0xff000000; 343 | int l2 = (((int)_data[1])<<16)&0x00ff0000; 344 | int l3 = (((int)_data[2])<<8)&0x0000ff00; 345 | int l4 = (_data[3])&0x000000ff; 346 | int l=l1|l2|l3|l4; 347 | return l; 348 | } 349 | 350 | public static byte[] intToByte(int number) { 351 | byte[] b = new byte[4]; 352 | for (int i = 3; i >= 0; i--) { 353 | b[i] = (byte) (number % 256); 354 | number >>= 8; 355 | } 356 | return b; 357 | } 358 | 359 | // //直接返回数据,读者可以添加自己解密方法 360 | private byte[] decrypt(byte[] data,int offset,int len) { 361 | return CZsEncrypt.d(data,offset,len); 362 | } 363 | } -------------------------------------------------------------------------------- /dexEncrypt/backup/com/android/dexunshell/RefInvoke.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | import android.util.Log; 4 | 5 | import java.lang.reflect.Field; 6 | import java.lang.reflect.InvocationTargetException; 7 | import java.lang.reflect.Method; 8 | 9 | public class RefInvoke { 10 | 11 | public static Object invokeStaticMethod(String class_name, String method_name, Class[] pareTyple, Object[] pareVaules){ 12 | 13 | try { 14 | Class obj_class = Class.forName(class_name); 15 | Method method = obj_class.getMethod(method_name,pareTyple); 16 | return method.invoke(null, pareVaules); 17 | } catch (SecurityException e) { 18 | // TODO Auto-generated catch block 19 | e.printStackTrace(); 20 | } catch (IllegalArgumentException e) { 21 | // TODO Auto-generated catch block 22 | e.printStackTrace(); 23 | } catch (IllegalAccessException e) { 24 | // TODO Auto-generated catch block 25 | e.printStackTrace(); 26 | } catch (NoSuchMethodException e) { 27 | // TODO Auto-generated catch block 28 | e.printStackTrace(); 29 | } catch (InvocationTargetException e) { 30 | // TODO Auto-generated catch block 31 | e.printStackTrace(); 32 | } catch (ClassNotFoundException e) { 33 | // TODO Auto-generated catch block 34 | e.printStackTrace(); 35 | } 36 | return null; 37 | 38 | } 39 | 40 | public static Object invokeMethod(String class_name, String method_name, Object obj ,Class[] pareTyple, Object[] pareVaules){ 41 | 42 | try { 43 | Class obj_class = Class.forName(class_name); 44 | Log.v("RefInvoke", obj_class.getName()); 45 | Method method = obj_class.getMethod(method_name,pareTyple); 46 | return method.invoke(obj, pareVaules); 47 | } catch (SecurityException e) { 48 | // TODO Auto-generated catch block 49 | e.printStackTrace(); 50 | } catch (IllegalArgumentException e) { 51 | // TODO Auto-generated catch block 52 | e.printStackTrace(); 53 | } catch (IllegalAccessException e) { 54 | // TODO Auto-generated catch block 55 | e.printStackTrace(); 56 | } catch (NoSuchMethodException e) { 57 | // TODO Auto-generated catch block 58 | e.printStackTrace(); 59 | } catch (InvocationTargetException e) { 60 | // TODO Auto-generated catch block 61 | e.printStackTrace(); 62 | } catch (ClassNotFoundException e) { 63 | // TODO Auto-generated catch block 64 | e.printStackTrace(); 65 | } 66 | return null; 67 | 68 | } 69 | 70 | public static Object getFieldOjbect(String class_name,Object obj, String filedName){ 71 | try { 72 | Class obj_class = Class.forName(class_name); 73 | Field field = obj_class.getDeclaredField(filedName); 74 | field.setAccessible(true); 75 | return field.get(obj); 76 | } catch (SecurityException e) { 77 | // TODO Auto-generated catch block 78 | e.printStackTrace(); 79 | } catch (NoSuchFieldException e) { 80 | // TODO Auto-generated catch block 81 | e.printStackTrace(); 82 | } catch (IllegalArgumentException e) { 83 | // TODO Auto-generated catch block 84 | e.printStackTrace(); 85 | } catch (IllegalAccessException e) { 86 | // TODO Auto-generated catch block 87 | e.printStackTrace(); 88 | } catch (ClassNotFoundException e) { 89 | // TODO Auto-generated catch block 90 | e.printStackTrace(); 91 | } 92 | return null; 93 | 94 | } 95 | 96 | public static Object getStaticFieldOjbect(String class_name, String filedName){ 97 | 98 | try { 99 | Class obj_class = Class.forName(class_name); 100 | Field field = obj_class.getDeclaredField(filedName); 101 | field.setAccessible(true); 102 | return field.get(null); 103 | } catch (SecurityException e) { 104 | // TODO Auto-generated catch block 105 | e.printStackTrace(); 106 | } catch (NoSuchFieldException e) { 107 | // TODO Auto-generated catch block 108 | e.printStackTrace(); 109 | } catch (IllegalArgumentException e) { 110 | // TODO Auto-generated catch block 111 | e.printStackTrace(); 112 | } catch (IllegalAccessException e) { 113 | // TODO Auto-generated catch block 114 | e.printStackTrace(); 115 | } catch (ClassNotFoundException e) { 116 | // TODO Auto-generated catch block 117 | e.printStackTrace(); 118 | } 119 | return null; 120 | 121 | } 122 | 123 | public static void setFieldOjbect(String classname, String filedName, Object obj, Object filedVaule){ 124 | try { 125 | Class obj_class = Class.forName(classname); 126 | Field field = obj_class.getDeclaredField(filedName); 127 | field.setAccessible(true); 128 | field.set(obj, filedVaule); 129 | } catch (SecurityException e) { 130 | // TODO Auto-generated catch block 131 | e.printStackTrace(); 132 | } catch (NoSuchFieldException e) { 133 | // TODO Auto-generated catch block 134 | e.printStackTrace(); 135 | } catch (IllegalArgumentException e) { 136 | // TODO Auto-generated catch block 137 | e.printStackTrace(); 138 | } catch (IllegalAccessException e) { 139 | // TODO Auto-generated catch block 140 | e.printStackTrace(); 141 | } catch (ClassNotFoundException e) { 142 | // TODO Auto-generated catch block 143 | e.printStackTrace(); 144 | } 145 | } 146 | 147 | public static void setStaticOjbect(String class_name, String filedName, Object filedVaule){ 148 | try { 149 | Class obj_class = Class.forName(class_name); 150 | Field field = obj_class.getDeclaredField(filedName); 151 | field.setAccessible(true); 152 | field.set(null, filedVaule); 153 | } catch (SecurityException e) { 154 | // TODO Auto-generated catch block 155 | e.printStackTrace(); 156 | } catch (NoSuchFieldException e) { 157 | // TODO Auto-generated catch block 158 | e.printStackTrace(); 159 | } catch (IllegalArgumentException e) { 160 | // TODO Auto-generated catch block 161 | e.printStackTrace(); 162 | } catch (IllegalAccessException e) { 163 | // TODO Auto-generated catch block 164 | e.printStackTrace(); 165 | } catch (ClassNotFoundException e) { 166 | // TODO Auto-generated catch block 167 | e.printStackTrace(); 168 | } 169 | } 170 | 171 | } 172 | -------------------------------------------------------------------------------- /dexEncrypt/backup/encrypt/CZsEncrypt.c: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | #include "CZsEncrypt.h" 4 | #include "app_dex_encrypt.h" 5 | /* Header for class CZsEncrypt */ 6 | typedef char BYTE; 7 | /* 8 | * Class: CZsEncrypt 9 | * Method: d 10 | * Signature: ([B)[B 11 | */ 12 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_d(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len){ 13 | // jsize len = (*env)->GetArrayLength(env,byarray); 14 | 15 | jbyte *jbarray = (jbyte *)safe_malloc(len * sizeof(jbyte)); 16 | 17 | (*env)->GetByteArrayRegion(env,byarray,offset,len,jbarray); 18 | 19 | BYTE *dDate=(BYTE*)jbarray; 20 | 21 | DATA_B b; 22 | b.data=dDate; 23 | b.len=len; 24 | DATA_B* O_buf =decryptByte(&b); 25 | 26 | jbyteArray RtnArr =(*env)->NewByteArray(env,O_buf->len); 27 | (*env)->SetByteArrayRegion(env,RtnArr, 0, O_buf->len, (jbyte*)O_buf->data ); 28 | 29 | safe_free(jbarray); 30 | safe_free(O_buf->data); 31 | safe_free(O_buf); 32 | return RtnArr; 33 | } 34 | 35 | /* 36 | * Class: CZsEncrypt 37 | * Method: e 38 | * Signature: ([B)[B 39 | */ 40 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_e(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len){ 41 | // jsize len = (*env)->GetArrayLength(env,byarray); 42 | 43 | jbyte *jbarray = (jbyte *)safe_malloc(len * sizeof(jbyte)); 44 | 45 | (*env)->GetByteArrayRegion(env,byarray,offset,len,jbarray); 46 | 47 | BYTE *dDate=(BYTE*)jbarray; 48 | 49 | DATA_B b; 50 | b.data=dDate; 51 | b.len=len; 52 | DATA_B* O_buf =encryptByte(&b); 53 | 54 | jbyteArray RtnArr =(*env)->NewByteArray(env,O_buf->len); 55 | (*env)->SetByteArrayRegion(env,RtnArr, 0, O_buf->len, (jbyte*)O_buf->data ); 56 | 57 | safe_free(jbarray); 58 | safe_free(O_buf->data); 59 | safe_free(O_buf); 60 | 61 | return RtnArr; 62 | } 63 | -------------------------------------------------------------------------------- /dexEncrypt/backup/encrypt/CZsEncrypt.h: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | /* Header for class CZsEncrypt */ 4 | 5 | #ifndef _Included_CZsEncrypt 6 | #define _Included_CZsEncrypt 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | /* 11 | * Class: CZsEncrypt 12 | * Method: d 13 | * Signature: ([B)[B 14 | */ 15 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_d(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len); 16 | 17 | /* 18 | * Class: CZsEncrypt 19 | * Method: e 20 | * Signature: ([B)[B 21 | */ 22 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_e(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /dexEncrypt/backup/encrypt/DexShellTool.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | import java.io.ByteArrayOutputStream; 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.io.FileOutputStream; 6 | import java.io.IOException; 7 | import java.io.RandomAccessFile; 8 | import java.security.MessageDigest; 9 | import java.security.NoSuchAlgorithmException; 10 | import java.util.zip.Adler32; 11 | 12 | public class DexShellTool { 13 | /** 14 | * @param args 15 | */ 16 | public static void main(String[] args) { 17 | try { 18 | 19 | String str = "./classes.dex"; 20 | File f = new File(str); 21 | if (!f.exists()) { 22 | f.createNewFile(); 23 | } 24 | 25 | File payloadSrcFile = new File(args[0]/*"g:/payload.apk"*/); 26 | 27 | File unShellDexFile = new File(args[1]/*"g:/unshell.dex"*/); 28 | byte[] unShellDexArray = readFileBytes(unShellDexFile); 29 | int unShellDexLen = unShellDexArray.length; 30 | 31 | 32 | 33 | 34 | FileInputStream datafilein = new FileInputStream(payloadSrcFile); 35 | RandomAccessFile file = new RandomAccessFile(f,"rw"); 36 | 37 | int payloadLen = 0; 38 | 39 | file.write(unShellDexArray); 40 | System.out.println("unshell 长度"+unShellDexLen); 41 | System.out.println(file.getFilePointer()); 42 | byte[] buffer = new byte[1024*1024]; 43 | int prelen=0; 44 | while((prelen=datafilein.read(buffer))!=-1){ 45 | byte[] enbuf = encrpt(buffer,0,prelen); 46 | int blocklen = enbuf.length; 47 | // System.out.println("数据长度"+prelen); 48 | // int blocklen = prelen; 49 | System.out.println(blocklen); 50 | file.write(intToByte(blocklen)); 51 | file.write(enbuf, 0, blocklen); 52 | payloadLen+=blocklen+4; 53 | System.out.println("数据长度"+prelen); 54 | } 55 | int totalLen = payloadLen + unShellDexLen +4; 56 | file.write(intToByte(payloadLen)); 57 | 58 | System.out.println("合并后"+totalLen); 59 | fixFileSizeHeader(file,totalLen); 60 | System.out.println("总长度"+file.getFilePointer()); 61 | System.out.println(file.getFilePointer()); 62 | fixSHA1Header(file); 63 | System.out.println("sha1"+file.getFilePointer()); 64 | System.out.println(file.getFilePointer()); 65 | fixCheckSumHeader(file); 66 | file.close(); 67 | datafilein.close(); 68 | 69 | // FileOutputStream localFileOutputStream = new FileOutputStream(str); 70 | // byte[] payloadArray = encrpt(readFileBytes(payloadSrcFile)); 71 | // int payloadLen = payloadArray.length; 72 | // int totalLen = payloadLen + unShellDexLen +4; 73 | // byte[] newdex = new byte[totalLen]; 74 | // //添加解壳代码 75 | // System.arraycopy(unShellDexArray, 0, newdex, 0, unShellDexLen); 76 | // //添加加密后的解壳数据 77 | // System.arraycopy(payloadArray, 0, newdex, unShellDexLen, payloadLen); 78 | // //添加解壳数据长度 79 | // System.arraycopy(intToByte(payloadLen), 0, newdex, totalLen-4, 4); 80 | // //修改DEX file size文件头 81 | // fixFileSizeHeader(newdex); 82 | // //修改DEX SHA1 文件头 83 | // fixSHA1Header(newdex); 84 | // //修改DEX CheckSum文件头 85 | // fixCheckSumHeader(newdex); 86 | // 87 | // 88 | // localFileOutputStream.write(newdex); 89 | // localFileOutputStream.flush(); 90 | // localFileOutputStream.close(); 91 | 92 | 93 | } catch (Exception e) { 94 | // TODO Auto-generated catch block 95 | e.printStackTrace(); 96 | } 97 | } 98 | private static void fixFileSizeHeader(RandomAccessFile _file,int totallen) throws IOException { 99 | 100 | _file.seek(32); 101 | byte[] newfs = intToByte(totallen); 102 | // System.out.println(Integer.toHexString(dexBytes.length)); 103 | byte[] refs = new byte[4]; 104 | for (int i = 0; i < 4; i++) { 105 | refs[i] = newfs[newfs.length - 1 - i]; 106 | System.out.println(Integer.toHexString(newfs[i])); 107 | } 108 | _file.write(refs); 109 | // System.arraycopy(refs, 0, dexBytes, 32, 4); 110 | // return refs; 111 | } 112 | 113 | private static void fixSHA1Header( RandomAccessFile _file) 114 | throws Exception { 115 | MessageDigest md = MessageDigest.getInstance("SHA-1"); 116 | byte[] buffer = new byte[1024*1024]; 117 | int len=0; 118 | _file.seek(32); 119 | while((len=_file.read(buffer))!=-1){ 120 | md.update(buffer, 0, len); 121 | } 122 | 123 | byte[] newdt = md.digest(); 124 | _file.seek(12); 125 | _file.write(newdt,0,20); 126 | // _file.write(buffer,0,20); 127 | 128 | String hexstr = ""; 129 | for (int i = 0; i < newdt.length; i++) { 130 | hexstr += Integer.toString((newdt[i] & 0xff) + 0x100, 16) 131 | .substring(1); 132 | } 133 | System.out.println(hexstr); 134 | } 135 | 136 | private static void fixCheckSumHeader(RandomAccessFile _file) throws Exception { 137 | Adler32 adler = new Adler32(); 138 | byte[] buffer = new byte[1024*1024]; 139 | int len=0; 140 | _file.seek(12); 141 | while((len=_file.read(buffer))!=-1){ 142 | adler.update(buffer, 0, len); 143 | } 144 | 145 | // adler.update(dexBytes, 12, dexBytes.length - 12); 146 | long value = adler.getValue(); 147 | int va = (int) value; 148 | _file.seek(8); 149 | byte[] newcs = intToByte(va); 150 | byte[] recs = new byte[4]; 151 | for (int i = 0; i < 4; i++) { 152 | recs[i] = newcs[newcs.length - 1 - i]; 153 | System.out.println(Integer.toHexString(newcs[i])); 154 | } 155 | _file.write(recs); 156 | 157 | // System.arraycopy(recs, 0, dexBytes, 8, 4); 158 | System.out.println(Long.toHexString(value)); 159 | System.out.println(); 160 | } 161 | 162 | //直接返回数据,读者可以添加自己加密方法 163 | private static byte[] encrpt(byte[] srcdata,int offset,int len){ 164 | // System.out.printf("java.library.path:%s",System.getProperty("java.library.path")); 165 | return CZsEncrypt.e(srcdata,offset,len); 166 | // return srcdata; 167 | } 168 | 169 | 170 | private static void fixCheckSumHeader(byte[] dexBytes) { 171 | Adler32 adler = new Adler32(); 172 | adler.update(dexBytes, 12, dexBytes.length - 12); 173 | long value = adler.getValue(); 174 | int va = (int) value; 175 | byte[] newcs = intToByte(va); 176 | byte[] recs = new byte[4]; 177 | for (int i = 0; i < 4; i++) { 178 | recs[i] = newcs[newcs.length - 1 - i]; 179 | System.out.println(Integer.toHexString(newcs[i])); 180 | } 181 | System.arraycopy(recs, 0, dexBytes, 8, 4); 182 | System.out.println(Long.toHexString(value)); 183 | System.out.println(); 184 | } 185 | 186 | 187 | public static byte[] intToByte(int number) { 188 | byte[] b = new byte[4]; 189 | for (int i = 3; i >= 0; i--) { 190 | b[i] = (byte) (number % 256); 191 | number >>= 8; 192 | } 193 | return b; 194 | } 195 | 196 | 197 | private static void fixSHA1Header(byte[] dexBytes) 198 | throws NoSuchAlgorithmException { 199 | MessageDigest md = MessageDigest.getInstance("SHA-1"); 200 | md.update(dexBytes, 32, dexBytes.length - 32); 201 | byte[] newdt = md.digest(); 202 | System.arraycopy(newdt, 0, dexBytes, 12, 20); 203 | String hexstr = ""; 204 | for (int i = 0; i < newdt.length; i++) { 205 | hexstr += Integer.toString((newdt[i] & 0xff) + 0x100, 16) 206 | .substring(1); 207 | } 208 | System.out.println(hexstr); 209 | } 210 | 211 | 212 | private static void fixFileSizeHeader(byte[] dexBytes) { 213 | 214 | 215 | byte[] newfs = intToByte(dexBytes.length); 216 | System.out.println(Integer.toHexString(dexBytes.length)); 217 | byte[] refs = new byte[4]; 218 | for (int i = 0; i < 4; i++) { 219 | refs[i] = newfs[newfs.length - 1 - i]; 220 | System.out.println(Integer.toHexString(newfs[i])); 221 | } 222 | System.arraycopy(refs, 0, dexBytes, 32, 4); 223 | } 224 | 225 | 226 | private static byte[] readFileBytes(File file) throws IOException { 227 | byte[] arrayOfByte = new byte[1024]; 228 | ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); 229 | FileInputStream fis = new FileInputStream(file); 230 | while (true) { 231 | int i = fis.read(arrayOfByte); 232 | if (i != -1) { 233 | localByteArrayOutputStream.write(arrayOfByte, 0, i); 234 | } else { 235 | return localByteArrayOutputStream.toByteArray(); 236 | } 237 | } 238 | } 239 | 240 | } 241 | -------------------------------------------------------------------------------- /dexEncrypt/backup/encrypt/app_dex_encrypt.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | #include 12 | #include "app_dex_encrypt.h" 13 | 14 | #include 15 | #include 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | //static DES_cblock seed = {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}; 22 | static DES_cblock ivsetup = {0xE1, 0xE2, 0xE3, 0xD4, 0xD5, 0xC6, 0xC7, 0xA8}; 23 | static DES_key_schedule ks1, ks2, ks3; 24 | 25 | 26 | 27 | int count=0; 28 | 29 | void* safe_malloc(int size){ 30 | count++; 31 | return malloc(size); 32 | } 33 | 34 | void safe_free(void* _ptr){ 35 | if (_ptr) { 36 | free(_ptr); 37 | } 38 | } 39 | 40 | int set_ecrypt_key(char * key){ 41 | int key_len =sizeof(DES_key_schedule); 42 | memcpy(&ks1, key, key_len); 43 | memcpy(&ks2, key+key_len, key_len); 44 | memcpy(&ks3, key+key_len*2, key_len); 45 | 46 | return 0; 47 | } 48 | 49 | int generate_key(){ 50 | srand((unsigned int)time((time_t*)NULL)); 51 | DES_cblock seed = {rand()%255, rand()%255, rand()%255, rand()%255, rand()%255, rand()%255, rand()%255, rand()%255}; 52 | DES_cblock key1, key2, key3; 53 | RAND_seed(seed, sizeof(DES_cblock)); 54 | 55 | DES_random_key(&key1); 56 | DES_random_key(&key2); 57 | DES_random_key(&key3); 58 | 59 | DES_set_key((C_Block *)key1, &ks1); 60 | DES_set_key((C_Block *)key2, &ks2); 61 | DES_set_key((C_Block *)key3, &ks3); 62 | return 0; 63 | } 64 | 65 | //return in heap 66 | char* get_ecrypt_key(char *dest_key) 67 | { 68 | int key_len =sizeof(DES_key_schedule); 69 | // char * key = safe_malloc(key_len*3); 70 | memcpy(dest_key, &ks1, key_len); 71 | memcpy(dest_key+key_len, &ks2, key_len); 72 | memcpy(dest_key+key_len*2, &ks3, key_len); 73 | return dest_key; 74 | } 75 | 76 | // return in heap 77 | char* encryptBlock(char* _block, char* re_out,int len) 78 | { 79 | if (len>64) { 80 | perror("error 1"); 81 | return NULL; 82 | } 83 | 84 | // char* re_out = safe_malloc(BUFSIZE); 85 | unsigned char in[BUFSIZE],out[BUFSIZE]; 86 | memset(in, 0, BUFSIZE); 87 | memset(out, 0, BUFSIZE); 88 | 89 | memcpy(in, _block, len); 90 | 91 | DES_cblock ivec; 92 | memcpy(ivec, ivsetup, sizeof(ivsetup)); 93 | 94 | DES_ede3_cbc_encrypt(in, out, len, &ks1, &ks2, &ks3, &ivec, DES_ENCRYPT); 95 | 96 | memcpy(re_out, out, BUFSIZE); 97 | return re_out; 98 | } 99 | 100 | //return in heap 101 | char* decryptBlock(char * _block,char* re_out,int len){ 102 | if (len>64) { 103 | perror("error 1"); 104 | return NULL; 105 | } 106 | 107 | // char re_out[BUFSIZE]; 108 | unsigned char in[BUFSIZE],out[BUFSIZE]; 109 | memset(in, 0, BUFSIZE); 110 | memset(out, 0, BUFSIZE); 111 | 112 | memcpy(in, _block, len); 113 | 114 | DES_cblock ivec; 115 | memcpy(ivec, ivsetup, sizeof(ivsetup)); 116 | 117 | DES_ede3_cbc_encrypt(in, out, len, &ks1, &ks2, &ks3, &ivec, DES_DECRYPT); 118 | 119 | memcpy(re_out, out, BUFSIZE); 120 | 121 | return re_out; 122 | } 123 | 124 | DATA_B * encryptByte(DATA_B* _data){ 125 | generate_key(); 126 | 127 | int key_len =sizeof(DES_key_schedule)*3; 128 | 129 | int ll = sizeof(DATA_B); 130 | DATA_B* out = safe_malloc(ll); 131 | int l=_data->len/BUFSIZE; 132 | int al_len = _data->len%BUFSIZE==0?l:l+1; 133 | 134 | out->data=safe_malloc(BUFSIZE*al_len+4+key_len); 135 | memcpy(out->data, &_data->len, 4); 136 | get_ecrypt_key(out->data+4); 137 | // memcpy(out->data+4,key,key_len); 138 | // safe_free(key); 139 | 140 | out->len=al_len*BUFSIZE+4+key_len; 141 | 142 | char out_buff[BUFSIZE]; 143 | memset(out_buff, 0, BUFSIZE); 144 | 145 | int i=0; 146 | int size=_data->len; 147 | int s_l=0; 148 | 149 | int offset_len=0; 150 | for (i=0; i=BUFSIZE) { 154 | encryptBlock(_data->data+s_l,out_buff, BUFSIZE); 155 | }else{ 156 | encryptBlock(_data->data+s_l,out_buff, offset_len); 157 | } 158 | memcpy(out->data+s_l+4+key_len, out_buff, BUFSIZE); 159 | memset(out_buff, 0, BUFSIZE); 160 | } 161 | 162 | 163 | return out; 164 | } 165 | 166 | //解密的数据块长度必然为64的整数倍 167 | DATA_B * decryptByte(DATA_B* _data){ 168 | int ll = sizeof(DATA_B); 169 | // DATA_B* out = safe_malloc(ll); 170 | int lll=0; 171 | memcpy(&lll, _data->data, 4); 172 | int key_len = sizeof(DES_key_schedule)*3; 173 | char *key = _data->data+4; 174 | set_ecrypt_key(key); 175 | int block=_data->len-4-key_len; 176 | int l=block/BUFSIZE; 177 | if(block%BUFSIZE!=0){ 178 | perror("解密数据有错"); 179 | return NULL; 180 | }; 181 | DATA_B* out = safe_malloc(ll); 182 | out->len=lll; 183 | out->data=safe_malloc(lll); 184 | 185 | char out_buff[BUFSIZE]; 186 | memset(out_buff, 0, BUFSIZE); 187 | 188 | int i=0; 189 | int s_l=0; 190 | 191 | for (i=0; idata+s_l+4+key_len,out_buff, BUFSIZE); 194 | memcpy(out->data+s_l, out_buff, BUFSIZE); 195 | memset(out_buff, 0, BUFSIZE); 196 | } 197 | return out; 198 | } 199 | 200 | static int base64_encode(char *str,int str_len,char *encode,int encode_len){ 201 | BIO *bmem,*b64; 202 | BUF_MEM *bptr; 203 | b64=BIO_new(BIO_f_base64()); 204 | bmem=BIO_new(BIO_s_mem()); 205 | b64=BIO_push(b64,bmem); 206 | BIO_write(b64,str,str_len); //encode 207 | BIO_flush(b64); 208 | BIO_get_mem_ptr(b64,&bptr); 209 | if(bptr->length>encode_len){ 210 | // DPRINTF("encode_len too small\n"); 211 | return -1; 212 | } 213 | encode_len=bptr->length; 214 | memcpy(encode,bptr->data,bptr->length); 215 | // write(1,encode,bptr->length); 216 | BIO_free_all(b64); 217 | return encode_len; 218 | } 219 | 220 | static int base64_decode(char *str,int str_len,char *decode,int decode_buffer_len){ 221 | int len=0; 222 | BIO *b64,*bmem; 223 | b64=BIO_new(BIO_f_base64()); 224 | bmem=BIO_new_mem_buf(str,str_len); 225 | bmem=BIO_push(b64,bmem); 226 | len=BIO_read(bmem,decode,str_len); 227 | decode[len]=0; 228 | BIO_free_all(bmem); 229 | return 0; 230 | } 231 | 232 | #ifdef __cplusplus 233 | } 234 | #endif 235 | -------------------------------------------------------------------------------- /dexEncrypt/backup/encrypt/app_dex_encrypt.h: -------------------------------------------------------------------------------- 1 | #ifndef __APP_DEX_ENCRYPT_H_ 2 | #define __APP_DEX_ENCRYPT_H_ 3 | 4 | 5 | #define BUFSIZE 64 6 | 7 | struct DATA{ 8 | char* data; 9 | int len; 10 | }; 11 | 12 | typedef struct DATA DATA_B; 13 | 14 | 15 | void* safe_malloc(int size); 16 | void safe_free(void* _ptr); 17 | 18 | int set_ecrypt_key(char * key); 19 | 20 | int generate_key(); 21 | 22 | //return in heap 23 | char* get_ecrypt_key(); 24 | // return in heap 25 | char* encryptBlock(char* _block, char* re_out,int len); 26 | //return in heap 27 | char* decryptBlock(char * _block,char* re_out,int len); 28 | 29 | DATA_B * encryptByte(DATA_B* _data); 30 | 31 | //解密的数据块长度必然为64的整数倍 32 | DATA_B * decryptByte(DATA_B* _data); 33 | 34 | #endif -------------------------------------------------------------------------------- /dexEncrypt/config.cof: -------------------------------------------------------------------------------- 1 | #壳apk 2 | shellApk=androidketest.apk 3 | 4 | #需要处理的apk 5 | processApk=preload.apk 6 | 7 | #apktool的相对路径 8 | apktoolPath=../apktool_2.0.0rc4.jar 9 | 10 | #需要处理apk包名 11 | applicationName=lv.keexample.CApplication 12 | 13 | #keystore路径 14 | keystorepath=~/Documents/keystore/mmykeystore -------------------------------------------------------------------------------- /dexEncrypt/encrypt/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/encrypt/.DS_Store -------------------------------------------------------------------------------- /dexEncrypt/encrypt/CZsEncrypt.c: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | #include "CZsEncrypt.h" 4 | #include "app_dex_encrypt.h" 5 | /* Header for class CZsEncrypt */ 6 | typedef char BYTE; 7 | /* 8 | * Class: CZsEncrypt 9 | * Method: d 10 | * Signature: ([B)[B 11 | */ 12 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_d(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len){ 13 | // jsize len = (*env)->GetArrayLength(env,byarray); 14 | 15 | jbyte *jbarray = (jbyte *)safe_malloc(len * sizeof(jbyte)); 16 | 17 | (*env)->GetByteArrayRegion(env,byarray,offset,len,jbarray); 18 | 19 | BYTE *dDate=(BYTE*)jbarray; 20 | 21 | DATA_B b; 22 | b.data=dDate; 23 | b.len=len; 24 | DATA_B* O_buf =decryptByte(&b); 25 | 26 | jbyteArray RtnArr =(*env)->NewByteArray(env,O_buf->len); 27 | (*env)->SetByteArrayRegion(env,RtnArr, 0, O_buf->len, (jbyte*)O_buf->data ); 28 | 29 | safe_free(jbarray); 30 | safe_free(O_buf->data); 31 | safe_free(O_buf); 32 | return RtnArr; 33 | } 34 | 35 | /* 36 | * Class: CZsEncrypt 37 | * Method: e 38 | * Signature: ([B)[B 39 | */ 40 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_e(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len){ 41 | // jsize len = (*env)->GetArrayLength(env,byarray); 42 | 43 | jbyte *jbarray = (jbyte *)safe_malloc(len * sizeof(jbyte)); 44 | 45 | (*env)->GetByteArrayRegion(env,byarray,offset,len,jbarray); 46 | 47 | BYTE *dDate=(BYTE*)jbarray; 48 | 49 | DATA_B b; 50 | b.data=dDate; 51 | b.len=len; 52 | DATA_B* O_buf =encryptByte(&b); 53 | 54 | jbyteArray RtnArr =(*env)->NewByteArray(env,O_buf->len); 55 | (*env)->SetByteArrayRegion(env,RtnArr, 0, O_buf->len, (jbyte*)O_buf->data ); 56 | 57 | safe_free(jbarray); 58 | safe_free(O_buf->data); 59 | safe_free(O_buf); 60 | 61 | return RtnArr; 62 | } 63 | -------------------------------------------------------------------------------- /dexEncrypt/encrypt/CZsEncrypt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/encrypt/CZsEncrypt.class -------------------------------------------------------------------------------- /dexEncrypt/encrypt/CZsEncrypt.h: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | /* Header for class CZsEncrypt */ 4 | 5 | #ifndef _Included_CZsEncrypt 6 | #define _Included_CZsEncrypt 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | /* 11 | * Class: CZsEncrypt 12 | * Method: d 13 | * Signature: ([B)[B 14 | */ 15 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_d(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len); 16 | 17 | /* 18 | * Class: CZsEncrypt 19 | * Method: e 20 | * Signature: ([B)[B 21 | */ 22 | JNIEXPORT jbyteArray JNICALL Java_CZsEncrypt_e(JNIEnv * env, jclass clazz, jbyteArray byarray, jint offset,jint len); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /dexEncrypt/encrypt/CZsEncrypt.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by lvqiang on 15/3/16. 3 | */ 4 | public class CZsEncrypt { 5 | static { 6 | // System.out.printf("java.library.path:%s\n",System.getProperty("java.library.path")); 7 | System.load("/Users/lvqiang/tools/dexEncrypt/encrypt/libendex.so"); 8 | } 9 | 10 | public static native byte[] d(byte[] _byte,int offset,int len); 11 | 12 | public static native byte[] e(byte[] _byte,int offset,int len); 13 | 14 | public static void main(String[] args) { 15 | String hello="大家好啊……"; 16 | byte[] b=hello.getBytes(); 17 | // System.out.println("加密前长度:"+b.length); 18 | byte[] c=e(b,0,b.length); 19 | System.out.println("加密后长度:"+c.length); 20 | byte[] d=d(c,0,c.length); 21 | System.out.println("解密后长度:"+d.length); 22 | String out=new String(d); 23 | System.out.println(out); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /dexEncrypt/encrypt/DexShellTool.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/encrypt/DexShellTool.class -------------------------------------------------------------------------------- /dexEncrypt/encrypt/DexShellTool.java: -------------------------------------------------------------------------------- 1 | import java.io.ByteArrayOutputStream; 2 | import java.io.File; 3 | import java.io.FileInputStream; 4 | import java.io.FileOutputStream; 5 | import java.io.IOException; 6 | import java.io.RandomAccessFile; 7 | import java.security.MessageDigest; 8 | import java.security.NoSuchAlgorithmException; 9 | import java.util.zip.Adler32; 10 | 11 | public class DexShellTool { 12 | /** 13 | * @param args 14 | */ 15 | public static void main(String[] args) { 16 | try { 17 | 18 | String str = "./classes.dex"; 19 | File f = new File(str); 20 | if (!f.exists()) { 21 | f.createNewFile(); 22 | } 23 | 24 | File payloadSrcFile = new File(args[0]/*"g:/payload.apk"*/); 25 | 26 | File unShellDexFile = new File(args[1]/*"g:/unshell.dex"*/); 27 | byte[] unShellDexArray = readFileBytes(unShellDexFile); 28 | int unShellDexLen = unShellDexArray.length; 29 | 30 | 31 | 32 | 33 | FileInputStream datafilein = new FileInputStream(payloadSrcFile); 34 | RandomAccessFile file = new RandomAccessFile(f,"rw"); 35 | 36 | int payloadLen = 0; 37 | 38 | file.write(unShellDexArray); 39 | System.out.println("unshell 长度"+unShellDexLen); 40 | System.out.println(file.getFilePointer()); 41 | byte[] buffer = new byte[1024*1024]; 42 | int prelen=0; 43 | while((prelen=datafilein.read(buffer))!=-1){ 44 | byte[] enbuf = encrpt(buffer,0,prelen); 45 | int blocklen = enbuf.length; 46 | // System.out.println("数据长度"+prelen); 47 | // int blocklen = prelen; 48 | System.out.println(blocklen); 49 | file.write(intToByte(blocklen)); 50 | file.write(enbuf, 0, blocklen); 51 | payloadLen+=blocklen+4; 52 | System.out.println("数据长度"+prelen); 53 | } 54 | int totalLen = payloadLen + unShellDexLen +4; 55 | file.write(intToByte(payloadLen)); 56 | 57 | System.out.println("合并后"+totalLen); 58 | fixFileSizeHeader(file,totalLen); 59 | System.out.println("总长度"+file.getFilePointer()); 60 | System.out.println(file.getFilePointer()); 61 | fixSHA1Header(file); 62 | System.out.println("sha1"+file.getFilePointer()); 63 | System.out.println(file.getFilePointer()); 64 | fixCheckSumHeader(file); 65 | file.close(); 66 | datafilein.close(); 67 | 68 | // FileOutputStream localFileOutputStream = new FileOutputStream(str); 69 | // byte[] payloadArray = encrpt(readFileBytes(payloadSrcFile)); 70 | // int payloadLen = payloadArray.length; 71 | // int totalLen = payloadLen + unShellDexLen +4; 72 | // byte[] newdex = new byte[totalLen]; 73 | // //添加解壳代码 74 | // System.arraycopy(unShellDexArray, 0, newdex, 0, unShellDexLen); 75 | // //添加加密后的解壳数据 76 | // System.arraycopy(payloadArray, 0, newdex, unShellDexLen, payloadLen); 77 | // //添加解壳数据长度 78 | // System.arraycopy(intToByte(payloadLen), 0, newdex, totalLen-4, 4); 79 | // //修改DEX file size文件头 80 | // fixFileSizeHeader(newdex); 81 | // //修改DEX SHA1 文件头 82 | // fixSHA1Header(newdex); 83 | // //修改DEX CheckSum文件头 84 | // fixCheckSumHeader(newdex); 85 | // 86 | // 87 | // localFileOutputStream.write(newdex); 88 | // localFileOutputStream.flush(); 89 | // localFileOutputStream.close(); 90 | 91 | 92 | } catch (Exception e) { 93 | // TODO Auto-generated catch block 94 | e.printStackTrace(); 95 | } 96 | } 97 | private static void fixFileSizeHeader(RandomAccessFile _file,int totallen) throws IOException { 98 | 99 | _file.seek(32); 100 | byte[] newfs = intToByte(totallen); 101 | // System.out.println(Integer.toHexString(dexBytes.length)); 102 | byte[] refs = new byte[4]; 103 | for (int i = 0; i < 4; i++) { 104 | refs[i] = newfs[newfs.length - 1 - i]; 105 | System.out.println(Integer.toHexString(newfs[i])); 106 | } 107 | _file.write(refs); 108 | // System.arraycopy(refs, 0, dexBytes, 32, 4); 109 | // return refs; 110 | } 111 | 112 | private static void fixSHA1Header( RandomAccessFile _file) 113 | throws Exception { 114 | MessageDigest md = MessageDigest.getInstance("SHA-1"); 115 | byte[] buffer = new byte[1024*1024]; 116 | int len=0; 117 | _file.seek(32); 118 | while((len=_file.read(buffer))!=-1){ 119 | md.update(buffer, 0, len); 120 | } 121 | 122 | byte[] newdt = md.digest(); 123 | _file.seek(12); 124 | _file.write(newdt,0,20); 125 | // _file.write(buffer,0,20); 126 | 127 | String hexstr = ""; 128 | for (int i = 0; i < newdt.length; i++) { 129 | hexstr += Integer.toString((newdt[i] & 0xff) + 0x100, 16) 130 | .substring(1); 131 | } 132 | System.out.println(hexstr); 133 | } 134 | 135 | private static void fixCheckSumHeader(RandomAccessFile _file) throws Exception { 136 | Adler32 adler = new Adler32(); 137 | byte[] buffer = new byte[1024*1024]; 138 | int len=0; 139 | _file.seek(12); 140 | while((len=_file.read(buffer))!=-1){ 141 | adler.update(buffer, 0, len); 142 | } 143 | 144 | // adler.update(dexBytes, 12, dexBytes.length - 12); 145 | long value = adler.getValue(); 146 | int va = (int) value; 147 | _file.seek(8); 148 | byte[] newcs = intToByte(va); 149 | byte[] recs = new byte[4]; 150 | for (int i = 0; i < 4; i++) { 151 | recs[i] = newcs[newcs.length - 1 - i]; 152 | System.out.println(Integer.toHexString(newcs[i])); 153 | } 154 | _file.write(recs); 155 | 156 | // System.arraycopy(recs, 0, dexBytes, 8, 4); 157 | System.out.println(Long.toHexString(value)); 158 | System.out.println(); 159 | } 160 | 161 | //直接返回数据,读者可以添加自己加密方法 162 | private static byte[] encrpt(byte[] srcdata,int offset,int len){ 163 | // System.out.printf("java.library.path:%s",System.getProperty("java.library.path")); 164 | return CZsEncrypt.e(srcdata,offset,len); 165 | // return srcdata; 166 | } 167 | 168 | 169 | private static void fixCheckSumHeader(byte[] dexBytes) { 170 | Adler32 adler = new Adler32(); 171 | adler.update(dexBytes, 12, dexBytes.length - 12); 172 | long value = adler.getValue(); 173 | int va = (int) value; 174 | byte[] newcs = intToByte(va); 175 | byte[] recs = new byte[4]; 176 | for (int i = 0; i < 4; i++) { 177 | recs[i] = newcs[newcs.length - 1 - i]; 178 | System.out.println(Integer.toHexString(newcs[i])); 179 | } 180 | System.arraycopy(recs, 0, dexBytes, 8, 4); 181 | System.out.println(Long.toHexString(value)); 182 | System.out.println(); 183 | } 184 | 185 | 186 | public static byte[] intToByte(int number) { 187 | byte[] b = new byte[4]; 188 | for (int i = 3; i >= 0; i--) { 189 | b[i] = (byte) (number % 256); 190 | number >>= 8; 191 | } 192 | return b; 193 | } 194 | 195 | 196 | private static void fixSHA1Header(byte[] dexBytes) 197 | throws NoSuchAlgorithmException { 198 | MessageDigest md = MessageDigest.getInstance("SHA-1"); 199 | md.update(dexBytes, 32, dexBytes.length - 32); 200 | byte[] newdt = md.digest(); 201 | System.arraycopy(newdt, 0, dexBytes, 12, 20); 202 | String hexstr = ""; 203 | for (int i = 0; i < newdt.length; i++) { 204 | hexstr += Integer.toString((newdt[i] & 0xff) + 0x100, 16) 205 | .substring(1); 206 | } 207 | System.out.println(hexstr); 208 | } 209 | 210 | 211 | private static void fixFileSizeHeader(byte[] dexBytes) { 212 | 213 | 214 | byte[] newfs = intToByte(dexBytes.length); 215 | System.out.println(Integer.toHexString(dexBytes.length)); 216 | byte[] refs = new byte[4]; 217 | for (int i = 0; i < 4; i++) { 218 | refs[i] = newfs[newfs.length - 1 - i]; 219 | System.out.println(Integer.toHexString(newfs[i])); 220 | } 221 | System.arraycopy(refs, 0, dexBytes, 32, 4); 222 | } 223 | 224 | 225 | private static byte[] readFileBytes(File file) throws IOException { 226 | byte[] arrayOfByte = new byte[1024]; 227 | ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); 228 | FileInputStream fis = new FileInputStream(file); 229 | while (true) { 230 | int i = fis.read(arrayOfByte); 231 | if (i != -1) { 232 | localByteArrayOutputStream.write(arrayOfByte, 0, i); 233 | } else { 234 | return localByteArrayOutputStream.toByteArray(); 235 | } 236 | } 237 | } 238 | 239 | } 240 | -------------------------------------------------------------------------------- /dexEncrypt/encrypt/app_dex_encrypt.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | #include 12 | #include "app_dex_encrypt.h" 13 | 14 | #include 15 | #include 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | //static DES_cblock seed = {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}; 22 | static DES_cblock ivsetup = {0xE1, 0xE2, 0xE3, 0xD4, 0xD5, 0xC6, 0xC7, 0xA8}; 23 | static DES_key_schedule ks1, ks2, ks3; 24 | 25 | 26 | 27 | int count=0; 28 | 29 | void* safe_malloc(int size){ 30 | count++; 31 | return malloc(size); 32 | } 33 | 34 | void safe_free(void* _ptr){ 35 | if (_ptr) { 36 | free(_ptr); 37 | } 38 | } 39 | 40 | int set_ecrypt_key(char * key){ 41 | int key_len =sizeof(DES_key_schedule); 42 | memcpy(&ks1, key, key_len); 43 | memcpy(&ks2, key+key_len, key_len); 44 | memcpy(&ks3, key+key_len*2, key_len); 45 | 46 | return 0; 47 | } 48 | 49 | int generate_key(){ 50 | srand((unsigned int)time((time_t*)NULL)); 51 | DES_cblock seed = {rand()%255, rand()%255, rand()%255, rand()%255, rand()%255, rand()%255, rand()%255, rand()%255}; 52 | DES_cblock key1, key2, key3; 53 | RAND_seed(seed, sizeof(DES_cblock)); 54 | 55 | DES_random_key(&key1); 56 | DES_random_key(&key2); 57 | DES_random_key(&key3); 58 | 59 | DES_set_key((C_Block *)key1, &ks1); 60 | DES_set_key((C_Block *)key2, &ks2); 61 | DES_set_key((C_Block *)key3, &ks3); 62 | return 0; 63 | } 64 | 65 | //return in heap 66 | char* get_ecrypt_key(char *dest_key) 67 | { 68 | int key_len =sizeof(DES_key_schedule); 69 | // char * key = safe_malloc(key_len*3); 70 | memcpy(dest_key, &ks1, key_len); 71 | memcpy(dest_key+key_len, &ks2, key_len); 72 | memcpy(dest_key+key_len*2, &ks3, key_len); 73 | return dest_key; 74 | } 75 | 76 | // return in heap 77 | char* encryptBlock(char* _block, char* re_out,int len) 78 | { 79 | if (len>64) { 80 | perror("error 1"); 81 | return NULL; 82 | } 83 | 84 | // char* re_out = safe_malloc(BUFSIZE); 85 | unsigned char in[BUFSIZE],out[BUFSIZE]; 86 | memset(in, 0, BUFSIZE); 87 | memset(out, 0, BUFSIZE); 88 | 89 | memcpy(in, _block, len); 90 | 91 | DES_cblock ivec; 92 | memcpy(ivec, ivsetup, sizeof(ivsetup)); 93 | 94 | DES_ede3_cbc_encrypt(in, out, len, &ks1, &ks2, &ks3, &ivec, DES_ENCRYPT); 95 | 96 | memcpy(re_out, out, BUFSIZE); 97 | return re_out; 98 | } 99 | 100 | //return in heap 101 | char* decryptBlock(char * _block,char* re_out,int len){ 102 | if (len>64) { 103 | perror("error 1"); 104 | return NULL; 105 | } 106 | 107 | // char re_out[BUFSIZE]; 108 | unsigned char in[BUFSIZE],out[BUFSIZE]; 109 | memset(in, 0, BUFSIZE); 110 | memset(out, 0, BUFSIZE); 111 | 112 | memcpy(in, _block, len); 113 | 114 | DES_cblock ivec; 115 | memcpy(ivec, ivsetup, sizeof(ivsetup)); 116 | 117 | DES_ede3_cbc_encrypt(in, out, len, &ks1, &ks2, &ks3, &ivec, DES_DECRYPT); 118 | 119 | memcpy(re_out, out, BUFSIZE); 120 | 121 | return re_out; 122 | } 123 | 124 | DATA_B * encryptByte(DATA_B* _data){ 125 | generate_key(); 126 | 127 | int key_len =sizeof(DES_key_schedule)*3; 128 | 129 | int ll = sizeof(DATA_B); 130 | DATA_B* out = safe_malloc(ll); 131 | int l=_data->len/BUFSIZE; 132 | int al_len = _data->len%BUFSIZE==0?l:l+1; 133 | 134 | out->data=safe_malloc(BUFSIZE*al_len+4+key_len); 135 | memcpy(out->data, &_data->len, 4); 136 | get_ecrypt_key(out->data+4); 137 | // memcpy(out->data+4,key,key_len); 138 | // safe_free(key); 139 | 140 | out->len=al_len*BUFSIZE+4+key_len; 141 | 142 | char out_buff[BUFSIZE]; 143 | memset(out_buff, 0, BUFSIZE); 144 | 145 | int i=0; 146 | int size=_data->len; 147 | int s_l=0; 148 | 149 | int offset_len=0; 150 | for (i=0; i=BUFSIZE) { 154 | encryptBlock(_data->data+s_l,out_buff, BUFSIZE); 155 | }else{ 156 | encryptBlock(_data->data+s_l,out_buff, offset_len); 157 | } 158 | memcpy(out->data+s_l+4+key_len, out_buff, BUFSIZE); 159 | memset(out_buff, 0, BUFSIZE); 160 | } 161 | 162 | 163 | return out; 164 | } 165 | 166 | //解密的数据块长度必然为64的整数倍 167 | DATA_B * decryptByte(DATA_B* _data){ 168 | int ll = sizeof(DATA_B); 169 | // DATA_B* out = safe_malloc(ll); 170 | int lll=0; 171 | memcpy(&lll, _data->data, 4); 172 | int key_len = sizeof(DES_key_schedule)*3; 173 | char *key = _data->data+4; 174 | set_ecrypt_key(key); 175 | int block=_data->len-4-key_len; 176 | int l=block/BUFSIZE; 177 | if(block%BUFSIZE!=0){ 178 | perror("解密数据有错"); 179 | return NULL; 180 | }; 181 | DATA_B* out = safe_malloc(ll); 182 | out->len=lll; 183 | out->data=safe_malloc(lll); 184 | 185 | char out_buff[BUFSIZE]; 186 | memset(out_buff, 0, BUFSIZE); 187 | 188 | int i=0; 189 | int s_l=0; 190 | 191 | for (i=0; idata+s_l+4+key_len,out_buff, BUFSIZE); 194 | memcpy(out->data+s_l, out_buff, BUFSIZE); 195 | memset(out_buff, 0, BUFSIZE); 196 | } 197 | return out; 198 | } 199 | 200 | static int base64_encode(char *str,int str_len,char *encode,int encode_len){ 201 | BIO *bmem,*b64; 202 | BUF_MEM *bptr; 203 | b64=BIO_new(BIO_f_base64()); 204 | bmem=BIO_new(BIO_s_mem()); 205 | b64=BIO_push(b64,bmem); 206 | BIO_write(b64,str,str_len); //encode 207 | BIO_flush(b64); 208 | BIO_get_mem_ptr(b64,&bptr); 209 | if(bptr->length>encode_len){ 210 | // DPRINTF("encode_len too small\n"); 211 | return -1; 212 | } 213 | encode_len=bptr->length; 214 | memcpy(encode,bptr->data,bptr->length); 215 | // write(1,encode,bptr->length); 216 | BIO_free_all(b64); 217 | return encode_len; 218 | } 219 | 220 | static int base64_decode(char *str,int str_len,char *decode,int decode_buffer_len){ 221 | int len=0; 222 | BIO *b64,*bmem; 223 | b64=BIO_new(BIO_f_base64()); 224 | bmem=BIO_new_mem_buf(str,str_len); 225 | bmem=BIO_push(b64,bmem); 226 | len=BIO_read(bmem,decode,str_len); 227 | decode[len]=0; 228 | BIO_free_all(bmem); 229 | return 0; 230 | } 231 | 232 | #ifdef __cplusplus 233 | } 234 | #endif 235 | -------------------------------------------------------------------------------- /dexEncrypt/encrypt/app_dex_encrypt.h: -------------------------------------------------------------------------------- 1 | #ifndef __APP_DEX_ENCRYPT_H_ 2 | #define __APP_DEX_ENCRYPT_H_ 3 | 4 | 5 | #define BUFSIZE 64 6 | 7 | struct DATA{ 8 | char* data; 9 | int len; 10 | }; 11 | 12 | typedef struct DATA DATA_B; 13 | 14 | 15 | void* safe_malloc(int size); 16 | void safe_free(void* _ptr); 17 | 18 | int set_ecrypt_key(char * key); 19 | 20 | int generate_key(); 21 | 22 | //return in heap 23 | char* get_ecrypt_key(); 24 | // return in heap 25 | char* encryptBlock(char* _block, char* re_out,int len); 26 | //return in heap 27 | char* decryptBlock(char * _block,char* re_out,int len); 28 | 29 | DATA_B * encryptByte(DATA_B* _data); 30 | 31 | //解密的数据块长度必然为64的整数倍 32 | DATA_B * decryptByte(DATA_B* _data); 33 | 34 | #endif -------------------------------------------------------------------------------- /dexEncrypt/encrypt/endex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/encrypt/endex.so -------------------------------------------------------------------------------- /dexEncrypt/encrypt/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/encrypt/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/encrypt/testDex.sh: -------------------------------------------------------------------------------- 1 | #!bin/bash 2 | javac DexShellTool.java 3 | java DexShellTool ../preload/classes.dex ../unshell.dex -------------------------------------------------------------------------------- /dexEncrypt/gernate_keapk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "解压解壳程序app-release!" 3 | unzip app-release.apk -d app-release 4 | 5 | echo "解压加密数据" 6 | 7 | echo "生成unshell.dex" 8 | mv app-release/classes.dex unshell.dex 9 | 10 | echo "给程序套壳!" 11 | java DexShellTool preload.apk unshell.dex 12 | mv classes.dex app-release/ 13 | cd app-release 14 | 15 | echo "打包程序" 16 | rm -r META-INF 17 | zip -r ../app-unsign.apk ./* 18 | cd .. 19 | 20 | echo "程序签名" 21 | jarsigner -verbose -keystore ~/Documents/keystore/mmykeystore -signedjar app-sign.apk app-unsign.apk mmykeystore -storepass maotouying 22 | 23 | echo "善后" 24 | rm -r app-release 25 | rm app-unsign.apk 26 | rm unshell.dex -------------------------------------------------------------------------------- /dexEncrypt/preload.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload.apk -------------------------------------------------------------------------------- /dexEncrypt/preload/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/AndroidManifest.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/classes.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/classes.dex -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/armeabi-v7a/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/armeabi-v7a/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/armeabi-v7a/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/armeabi-v7a/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/armeabi-v7a/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/armeabi-v7a/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/armeabi/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/armeabi/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/armeabi/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/armeabi/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/armeabi/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/armeabi/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/mips/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/mips/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/mips/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/mips/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/mips/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/mips/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/x86/libcrypto.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/x86/libcrypto.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/x86/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/x86/libendex.so -------------------------------------------------------------------------------- /dexEncrypt/preload/lib/x86/libssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/lib/x86/libssl.so -------------------------------------------------------------------------------- /dexEncrypt/preload/res/anim/abc_fade_in.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/anim/abc_fade_in.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/anim/abc_fade_out.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/anim/abc_fade_out.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/anim/abc_slide_in_bottom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/anim/abc_slide_in_bottom.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/anim/abc_slide_in_top.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/anim/abc_slide_in_top.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/anim/abc_slide_out_bottom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/anim/abc_slide_out_bottom.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/anim/abc_slide_out_top.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/anim/abc_slide_out_top.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_background_cache_hint_selector_material_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_background_cache_hint_selector_material_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_background_cache_hint_selector_material_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_background_cache_hint_selector_material_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_primary_text_disable_only_material_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_primary_text_disable_only_material_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_primary_text_disable_only_material_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_primary_text_disable_only_material_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_primary_text_material_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_primary_text_material_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_primary_text_material_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_primary_text_material_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_search_url_text.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_search_url_text.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_secondary_text_material_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_secondary_text_material_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/color/abc_secondary_text_material_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/color/abc_secondary_text_material_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ab_share_pack_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ab_share_pack_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ab_share_pack_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ab_share_pack_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_focused_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_focused_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-hdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-hdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ab_share_pack_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ab_share_pack_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ab_share_pack_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ab_share_pack_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_focused_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_focused_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-mdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-mdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-v21/abc_cab_background_top_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-v21/abc_cab_background_top_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ab_share_pack_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ab_share_pack_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ab_share_pack_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ab_share_pack_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_focused_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_focused_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xhdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xhdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxhdpi-v4/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxhdpi-v4/ic_launcher.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_btn_check_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_btn_check_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_btn_radio_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_btn_radio_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_cab_background_internal_bg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_cab_background_internal_bg.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_cab_background_top_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_cab_background_top_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_edit_text_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_edit_text_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_item_background_holo_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_item_background_holo_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_item_background_holo_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_item_background_holo_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_list_selector_background_transition_holo_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_list_selector_background_transition_holo_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_list_selector_background_transition_holo_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_list_selector_background_transition_holo_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_list_selector_holo_dark.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_list_selector_holo_dark.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_list_selector_holo_light.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_list_selector_holo_light.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_switch_thumb_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_switch_thumb_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_tab_indicator_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_tab_indicator_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/drawable/abc_textfield_search_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/drawable/abc_textfield_search_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout-v11/abc_screen_content_include.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout-v11/abc_screen_content_include.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout-v21/abc_screen_toolbar.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout-v21/abc_screen_toolbar.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_bar_title_item.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_bar_title_item.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_bar_up_container.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_bar_up_container.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_bar_view_list_nav_layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_bar_view_list_nav_layout.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_menu_item_layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_menu_item_layout.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_menu_layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_menu_layout.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_mode_bar.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_mode_bar.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_action_mode_close_item_material.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_action_mode_close_item_material.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_activity_chooser_view.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_activity_chooser_view.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_activity_chooser_view_include.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_activity_chooser_view_include.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_activity_chooser_view_list_item.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_activity_chooser_view_list_item.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_expanded_menu_layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_expanded_menu_layout.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_list_menu_item_checkbox.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_list_menu_item_checkbox.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_list_menu_item_icon.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_list_menu_item_icon.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_list_menu_item_layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_list_menu_item_layout.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_list_menu_item_radio.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_list_menu_item_radio.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_popup_menu_item_layout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_popup_menu_item_layout.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_screen_content_include.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_screen_content_include.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_screen_simple.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_screen_simple.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_screen_simple_overlay_action_mode.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_screen_simple_overlay_action_mode.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_screen_toolbar.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_screen_toolbar.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_search_dropdown_item_icons_2line.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_search_dropdown_item_icons_2line.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_search_view.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_search_view.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/abc_simple_dropdown_hint.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/abc_simple_dropdown_hint.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/activity_main.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/layout/support_simple_spinner_dropdown_item.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/layout/support_simple_spinner_dropdown_item.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/res/menu/menu_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/res/menu/menu_main.xml -------------------------------------------------------------------------------- /dexEncrypt/preload/resources.arsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/preload/resources.arsc -------------------------------------------------------------------------------- /dexEncrypt/preprocess.sh: -------------------------------------------------------------------------------- 1 | #!bin/bash 2 | #1.解析变量 3 | shellApk=null 4 | shellDir=null 5 | process_apk=null 6 | apktool_path=null 7 | applicationName=null 8 | keystorepath=null 9 | # set -x 10 | echo "读取配置文件" 11 | for i in `cat config.cof|grep -v ^$|grep -v '#'`; 12 | do 13 | a=`echo $i|cut -d = -f1` 14 | echo $a 15 | echo $i 16 | echo "------------" 17 | if [ "$a" = "processApk" ];then 18 | process_apk=`echo $i|cut -d = -f2` 19 | echo $process_apk 20 | elif [ "$a" = "apktoolPath" ];then 21 | apktool_path=`echo $i|cut -d = -f2` 22 | echo $apktool_path 23 | elif [ "$a" = "applicationName" ];then 24 | applicationName=`echo $i|cut -d = -f2` 25 | echo $applicationName 26 | elif [ "$a" = "shellApk" ]; then 27 | shellApk=`echo $i|cut -d = -f2` 28 | elif [ "$a" = "keystorepath"]; then 29 | keystorepath=`echo $i|cut -d = -f2` 30 | fi 31 | done 32 | 33 | prodir=`echo $process_apk|cut -d . -f1` 34 | shellDir=`echo $shellApk|cut -d . -f1` 35 | 36 | #2、修改nanifest文件中得application 37 | echo $process_apk 38 | echo $apktool_path 39 | echo "修改系统配置文件Manifest!" 40 | java -jar $apktool_path -f -s d $process_apk||exit "apktool 执行错误!" 41 | 42 | 43 | echo $prodir 44 | 45 | sed -i -e "s/$applicationName/com.android.dexunshell.ProxyApplication/g" ./$prodir/AndroidManifest.xml||exit "run ant clean && ant first." 46 | sed -i -e "s/\<\/application\>/\\<\/application\>/g" ./$prodir/AndroidManifest.xml 47 | 48 | echo "打包程序" 49 | # java -jar ../apktool_2.0.0rc4.jar b preload 50 | java -jar $apktool_path b $prodir||exit "apktool 执行错误" 51 | 52 | #3、将修改后的manifest加入到包中 53 | cp $prodir/build/apk/AndroidManifest.xml . 54 | rm -r $prodir 55 | unzip -q $process_apk -d $prodir 56 | cp -f AndroidManifest.xml $prodir 57 | 58 | # #4、判断unshell.dex是否存在 59 | # if [ -e "unshell.dex"];then 60 | # echo "unshell.dex 存在" 61 | # else 62 | echo "解压解壳程序$shellApk!" 63 | unzip $shellApk -d $shellDir 64 | echo "生成unshell.dex" 65 | if [ ! -e "$prodir/lib/" ];then 66 | mkdir $prodir/lib/ 67 | fi 68 | cp -r $shellDir/lib/* $prodir/lib/ 69 | mv $shellDir/classes.dex unshell.dex 70 | # fi 71 | 72 | #5、打包程序并签名 73 | cd ./encrypt 74 | java DexShellTool ../$prodir/classes.dex ../unshell.dex||exit "处理classes.dex 出错~" 75 | mv classes.dex ../$prodir 76 | cd ../$prodir 77 | echo "打包程序" 78 | rm -r META-INF 79 | zip -q -r ../app-unsign.apk ./* 80 | cd .. 81 | 82 | echo "程序签名" 83 | jarsigner -keystore $keystorepath -signedjar app-sign.apk app-unsign.apk mmykeystore -storepass maotouying 84 | 85 | # echo "善后" 86 | # rm -r app-release 87 | # rm app-unsign.apk 88 | # rm unshell.dex 89 | # rm -r $prodir 90 | # rm -r $shellDir 91 | 92 | -------------------------------------------------------------------------------- /dexEncrypt/start.sh: -------------------------------------------------------------------------------- 1 | #!bin/bash 2 | 3 | # sh preprocess.sh 4 | adb uninstall lv.keexample 5 | adb install app-sign.apk 6 | 7 | #test 8 | # prodir=preload 9 | # applicationName=lv.keexample.CApplication 10 | # sed -i -e "s/$applicationName/com.android.dexunshell.ProxyApplication/g" ./$prodir/AndroidManifest.xml 11 | # sed -i -e "s/\<\/application\>/\\<\/application\>/g" ./$prodir/AndroidManifest.xml 12 | 13 | -------------------------------------------------------------------------------- /dexEncrypt/unshell.dex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/dexEncrypt/unshell.dex -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | 加壳工程的研发结果: 2 | 1、androidtest为壳工程这个里面最主要的时ProxyApplication和RefInvoke两个类 3 | 2、加壳过程详见脚本preprocess.sh 4 | 3、加壳方法是配置相关的配置文件config.cof,然后执行preprocess.sh脚本 5 | 4、preload.apk是待加壳apk,androidketest.apk是壳apk 6 | 5、备份文件夹是重要代码备份,app-sign.apk是最终apk 7 | 6、encrypt文件夹是加密相关的代码 8 | 7、编译jni调用库的命令如下: 9 | gcc -fPIC -shared app_dex_encrypt.c CZsEncrypt.c -o libendex.so -I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin -I. -lssl -lcrypto -std=c99 10 | 11 | -------------------------------------------------------------------------------- /unshell/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /unshell/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | unshell 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /unshell/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /unshell/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /unshell/bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$anim.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$anim.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$attr.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$bool.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$bool.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$color.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$color.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$dimen.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$dimen.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$drawable.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$id.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$integer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$integer.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$layout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$layout.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$string.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$style.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R$styleable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R$styleable.class -------------------------------------------------------------------------------- /unshell/bin/classes/android/support/v7/appcompat/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/android/support/v7/appcompat/R.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/android/dexunshell/I.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/android/dexunshell/I.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/android/dexunshell/Il.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/android/dexunshell/Il.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/android/dexunshell/l.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/android/dexunshell/l.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/android/dexunshell/lI.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/android/dexunshell/lI.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/BuildConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/BuildConfig.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$anim.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$anim.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$attr.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$bool.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$bool.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$color.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$color.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$dimen.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$dimen.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$drawable.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$id.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$integer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$integer.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$layout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$layout.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$string.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$style.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R$styleable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R$styleable.class -------------------------------------------------------------------------------- /unshell/bin/classes/com/zs/unshell/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/bin/classes/com/zs/unshell/R.class -------------------------------------------------------------------------------- /unshell/bin/jarlist.cache: -------------------------------------------------------------------------------- 1 | # cache for current jar dependency. DO NOT EDIT. 2 | # format is 3 | # Encoding is UTF-8 4 | -------------------------------------------------------------------------------- /unshell/gen/com/zs/unshell/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.zs.unshell; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /unshell/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/ic_launcher-web.png -------------------------------------------------------------------------------- /unshell/libs/armeabi-v7a/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/libs/armeabi-v7a/libendex.so -------------------------------------------------------------------------------- /unshell/libs/armeabi/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/libs/armeabi/libendex.so -------------------------------------------------------------------------------- /unshell/libs/mips/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/libs/mips/libendex.so -------------------------------------------------------------------------------- /unshell/libs/x86/libendex.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/libs/x86/libendex.so -------------------------------------------------------------------------------- /unshell/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /unshell/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-21 15 | android.library.reference.1=../appcompat_v7 16 | -------------------------------------------------------------------------------- /unshell/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /unshell/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /unshell/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /unshell/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vbanqi/shellApk/017bdc73aeff999cf6185afbed73a33db0532195/unshell/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /unshell/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | unshell 5 | 6 | 7 | -------------------------------------------------------------------------------- /unshell/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /unshell/src/com/android/dexunshell/CZsEncrypt.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | /** 4 | * Created by lvqiang on 15/3/16. 5 | */ 6 | public class CZsEncrypt { 7 | static { 8 | System.loadLibrary("endex"); 9 | } 10 | 11 | public static native byte[] d(byte[] _byte,int offset,int len); 12 | 13 | public static native byte[] e(byte[] _byte,int offset,int len); 14 | } 15 | -------------------------------------------------------------------------------- /unshell/src/com/android/dexunshell/MyClassLoader.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | import dalvik.system.DexClassLoader; 4 | 5 | public class MyClassLoader extends DexClassLoader { 6 | 7 | public MyClassLoader(String l, String I, 8 | String ll, ClassLoader lI) { 9 | super(l, I, ll, lI); 10 | } 11 | 12 | public Class loadClass(String className) throws ClassNotFoundException { 13 | // TODO Auto-generated method stub 14 | return super.loadClass(className, false); 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /unshell/src/com/android/dexunshell/ProxyApplication.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | import java.io.BufferedInputStream; 4 | import java.io.ByteArrayInputStream; 5 | import java.io.ByteArrayOutputStream; 6 | import java.io.DataInputStream; 7 | import java.io.File; 8 | import java.io.FileInputStream; 9 | import java.io.FileOutputStream; 10 | import java.io.IOException; 11 | import java.io.RandomAccessFile; 12 | import java.lang.ref.WeakReference; 13 | import java.util.ArrayList; 14 | import java.util.HashMap; 15 | import java.util.Iterator; 16 | import java.util.Map; 17 | import java.util.zip.ZipEntry; 18 | import java.util.zip.ZipInputStream; 19 | 20 | import dalvik.system.DexClassLoader; 21 | import android.app.Application; 22 | import android.app.Instrumentation; 23 | import android.content.Context; 24 | import android.content.pm.ApplicationInfo; 25 | import android.content.pm.PackageManager; 26 | import android.content.pm.PackageManager.NameNotFoundException; 27 | import android.os.Bundle; 28 | import android.util.Log; 29 | 30 | public class ProxyApplication extends Application { 31 | 32 | // private static final String appkey = "APPLICATION_CLASS_NAME"; 33 | private String apkFileName; 34 | private String odexPath; 35 | private String libPath; 36 | private MyClassLoader dLoader; 37 | 38 | public void onCreate() { 39 | Log.v(this.getClass().getName(),"先有aplication"); 40 | { 41 | try { 42 | File odex = this.getDir("payload_odex", MODE_PRIVATE); 43 | File dex = this.getDir("payload_dex", MODE_PRIVATE); 44 | File buf = this.getDir("payload_buf", MODE_PRIVATE); 45 | File libs = this.getDir("lib", MODE_PRIVATE); 46 | 47 | odexPath = odex.getAbsolutePath(); 48 | Log.e(this.getClass().getName(),"壳工程odexPath----"+odexPath); 49 | libPath = libs.getAbsolutePath(); 50 | Log.e(this.getClass().getName(),"壳libPath----"+libPath); 51 | apkFileName = dex.getAbsolutePath() + "/classes.dex"; 52 | Log.e(this.getClass().getName(),"壳工程apkFileName----"+apkFileName); 53 | String bufName = buf.getAbsolutePath() + "/buffer.dex"; 54 | File dexFile = new File(apkFileName); 55 | if (!dexFile.exists()) 56 | dexFile.createNewFile(); 57 | File bufFile = new File(bufName); 58 | if (!bufFile.exists()) 59 | bufFile.createNewFile(); 60 | RandomAccessFile bufile = new RandomAccessFile(bufName, "rw"); 61 | // 读取程序classes.dex文件 62 | readDexFileFromApk(bufile); 63 | // 分离出解壳后的apk文件已用于动态加载 64 | this.splitPayLoadFromDex(bufile); 65 | bufile.close(); 66 | // 配置动态加载环境 67 | Object currentActivityThread = RefInvoke.invokeStaticMethod( 68 | "android.app.ActivityThread", "currentActivityThread", 69 | new Class[]{}, new Object[]{}); 70 | String packageName = this.getPackageName(); 71 | Log.e(this.getClass().getName(),"壳创建activitycontext----"+packageName); 72 | Map mPackages = (Map) RefInvoke.getFieldOjbect( 73 | "android.app.ActivityThread", currentActivityThread, 74 | "mPackages"); 75 | WeakReference wr = (WeakReference) mPackages.get(packageName); 76 | dLoader = new MyClassLoader(apkFileName, odexPath, 77 | libPath, (ClassLoader) RefInvoke.getFieldOjbect( 78 | "android.app.LoadedApk", wr.get(), "mClassLoader")); 79 | Log.e(this.getClass().getName(),"壳创建DexClassLoader----"+packageName); 80 | RefInvoke.setFieldOjbect("android.app.LoadedApk", "mClassLoader", 81 | wr.get(), dLoader); 82 | Log.e(this.getClass().getName(),"壳设置DexClassLoader----"+packageName); 83 | 84 | // 如果源应用配置有Appliction对象,则替换为源应用Applicaiton,以便不影响源程序逻辑。 85 | String appClassName = null; 86 | 87 | ApplicationInfo ai = this.getPackageManager() 88 | .getApplicationInfo(this.getPackageName(), 89 | PackageManager.GET_META_DATA); 90 | Log.e(this.getClass().getName(),"壳获取applicationinfo----"+packageName); 91 | Bundle bundle = ai.metaData; 92 | Log.e(this.getClass().getName(),"壳获取bundle----"+packageName); 93 | if (bundle != null 94 | && bundle.containsKey("APPLICATION_CLASS_NAME")) { 95 | appClassName = bundle.getString("APPLICATION_CLASS_NAME"); 96 | } else { 97 | return; 98 | } 99 | 100 | Log.e(this.getClass().getName(),"替换context----"+appClassName); 101 | Application app = (Application)dLoader.loadClass(appClassName).newInstance(); 102 | Log.e(this.getClass().getName(),"壳替换加载application----"+appClassName); 103 | RefInvoke.setFieldOjbect("android.app.ContextImpl", "mOuterContext", this.getBaseContext(), app); 104 | RefInvoke.setFieldOjbect("android.content.ContextWrapper", "mBase", app, this.getBaseContext()); 105 | 106 | Log.e(this.getClass().getName(),"将app设定到binddata中----android.app.ActivityThread->mInitialApplication"); 107 | Object mBoundApplication = RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mBoundApplication"); 108 | Object info = RefInvoke.getFieldOjbect("android.app.ActivityThread$AppBindData", mBoundApplication, "info"); 109 | RefInvoke.setFieldOjbect("android.app.LoadedApk", "mApplication", info, app); 110 | 111 | Log.e(this.getClass().getName(),"获得旧的app对象----android.app.ActivityThread->mInitialApplication"); 112 | Object oldApplication = RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mInitialApplication"); 113 | 114 | Log.e(this.getClass().getName(),"将新的app放到app顶部中----android.app.ActivityThread->mInitialApplication"); 115 | RefInvoke.setFieldOjbect("android.app.ActivityThread", "mInitialApplication", currentActivityThread, app); 116 | 117 | Log.e(this.getClass().getName(),"获得app列表,并将新的app加入到app列表中----android.app.ActivityThread->mAllApplications"); 118 | ArrayList mAllApplications = (ArrayList)RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mAllApplications"); 119 | mAllApplications.remove(oldApplication); 120 | mAllApplications.add(app); 121 | 122 | Log.e(this.getClass().getName(),"获得资源列表----android.app.ActivityThread->mProviderMap"); 123 | Map mProviderMap = (Map) RefInvoke.getFieldOjbect("android.app.ActivityThread", currentActivityThread, "mProviderMap"); 124 | int count=0; 125 | 126 | 127 | 128 | Iterator it = mProviderMap.values().iterator(); 129 | 130 | while (it.hasNext()) { 131 | Object providerClientRecord = it.next(); 132 | Object localProvider = RefInvoke.getFieldOjbect( 133 | "android.app.ActivityThread$ProviderClientRecord", 134 | providerClientRecord, "mLocalProvider"); 135 | RefInvoke.setFieldOjbect("android.content.ContentProvider", 136 | "mContext", localProvider, app); 137 | count++; 138 | } 139 | Log.e(this.getClass().getName(),"添加资源到资源到----provider"+mProviderMap.size()); 140 | app.onCreate(); 141 | Log.v(this.getClass().getName(),app.getClass().getName()); 142 | Log.v(this.getClass().getName(),"lv.keexample.CApplication"); 143 | Log.v(this.getClass().getName(),appClassName); 144 | // RefInvoke.invokeMethod(appClassName, "onCreate", app, new Class[]{}, new Object[]{}); 145 | } catch (NameNotFoundException e) { 146 | e.printStackTrace(); 147 | } catch (ClassNotFoundException e) { 148 | e.printStackTrace(); 149 | } catch (InstantiationException e) { 150 | e.printStackTrace(); 151 | } catch (IllegalAccessException e) { 152 | e.printStackTrace(); 153 | } catch (IOException e) { 154 | e.printStackTrace(); 155 | } 156 | } 157 | } 158 | 159 | 160 | private void splitPayLoadFromDex(RandomAccessFile bufile) throws IOException { 161 | // 162 | long ablen = bufile.length(); 163 | bufile.seek(ablen-4); 164 | 165 | byte[] intbuf = new byte[4]; 166 | bufile.read(intbuf); 167 | int readInt = byteToInt(intbuf); 168 | Log.e(this.getClass().getName(),"壳解出前classes得长度"+readInt); 169 | RandomAccessFile file = new RandomAccessFile(apkFileName,"rw"); 170 | bufile.seek(ablen-4-readInt); 171 | int totallen=0; 172 | int blocklen=0; 173 | byte[] buf_e,buf_d; 174 | while(totallen= 0; i--) { 236 | b[i] = (byte) (number % 256); 237 | number >>= 8; 238 | } 239 | return b; 240 | } 241 | 242 | // //直接返回数据,读者可以添加自己解密方法 243 | private byte[] decrypt(byte[] data,int offset,int len) { 244 | return CZsEncrypt.d(data,offset,len); 245 | } 246 | } -------------------------------------------------------------------------------- /unshell/src/com/android/dexunshell/RefInvoke.java: -------------------------------------------------------------------------------- 1 | package com.android.dexunshell; 2 | 3 | import android.util.Log; 4 | 5 | import java.lang.reflect.Field; 6 | import java.lang.reflect.InvocationTargetException; 7 | import java.lang.reflect.Method; 8 | 9 | public class RefInvoke { 10 | 11 | public static Object invokeStaticMethod(String class_name, String method_name, Class[] pareTyple, Object[] pareVaules){ 12 | 13 | try { 14 | Class obj_class = Class.forName(class_name); 15 | Method method = obj_class.getMethod(method_name,pareTyple); 16 | return method.invoke(null, pareVaules); 17 | } catch (SecurityException e) { 18 | // TODO Auto-generated catch block 19 | e.printStackTrace(); 20 | } catch (IllegalArgumentException e) { 21 | // TODO Auto-generated catch block 22 | e.printStackTrace(); 23 | } catch (IllegalAccessException e) { 24 | // TODO Auto-generated catch block 25 | e.printStackTrace(); 26 | } catch (NoSuchMethodException e) { 27 | // TODO Auto-generated catch block 28 | e.printStackTrace(); 29 | } catch (InvocationTargetException e) { 30 | // TODO Auto-generated catch block 31 | e.printStackTrace(); 32 | } catch (ClassNotFoundException e) { 33 | // TODO Auto-generated catch block 34 | e.printStackTrace(); 35 | } 36 | return null; 37 | 38 | } 39 | 40 | public static Object invokeMethod(String class_name, String method_name, Object obj ,Class[] pareTyple, Object[] pareVaules){ 41 | 42 | try { 43 | Class obj_class = Class.forName(class_name); 44 | Log.v("RefInvoke", obj_class.getName()); 45 | Method method = obj_class.getMethod(method_name,pareTyple); 46 | return method.invoke(obj, pareVaules); 47 | } catch (SecurityException e) { 48 | // TODO Auto-generated catch block 49 | e.printStackTrace(); 50 | } catch (IllegalArgumentException e) { 51 | // TODO Auto-generated catch block 52 | e.printStackTrace(); 53 | } catch (IllegalAccessException e) { 54 | // TODO Auto-generated catch block 55 | e.printStackTrace(); 56 | } catch (NoSuchMethodException e) { 57 | // TODO Auto-generated catch block 58 | e.printStackTrace(); 59 | } catch (InvocationTargetException e) { 60 | // TODO Auto-generated catch block 61 | e.printStackTrace(); 62 | } catch (ClassNotFoundException e) { 63 | // TODO Auto-generated catch block 64 | e.printStackTrace(); 65 | } 66 | return null; 67 | 68 | } 69 | 70 | public static Object getFieldOjbect(String class_name,Object obj, String filedName){ 71 | try { 72 | Class obj_class = Class.forName(class_name); 73 | Field field = obj_class.getDeclaredField(filedName); 74 | field.setAccessible(true); 75 | return field.get(obj); 76 | } catch (SecurityException e) { 77 | // TODO Auto-generated catch block 78 | e.printStackTrace(); 79 | } catch (NoSuchFieldException e) { 80 | // TODO Auto-generated catch block 81 | e.printStackTrace(); 82 | } catch (IllegalArgumentException e) { 83 | // TODO Auto-generated catch block 84 | e.printStackTrace(); 85 | } catch (IllegalAccessException e) { 86 | // TODO Auto-generated catch block 87 | e.printStackTrace(); 88 | } catch (ClassNotFoundException e) { 89 | // TODO Auto-generated catch block 90 | e.printStackTrace(); 91 | } 92 | return null; 93 | 94 | } 95 | 96 | public static Object getStaticFieldOjbect(String class_name, String filedName){ 97 | 98 | try { 99 | Class obj_class = Class.forName(class_name); 100 | Field field = obj_class.getDeclaredField(filedName); 101 | field.setAccessible(true); 102 | return field.get(null); 103 | } catch (SecurityException e) { 104 | // TODO Auto-generated catch block 105 | e.printStackTrace(); 106 | } catch (NoSuchFieldException e) { 107 | // TODO Auto-generated catch block 108 | e.printStackTrace(); 109 | } catch (IllegalArgumentException e) { 110 | // TODO Auto-generated catch block 111 | e.printStackTrace(); 112 | } catch (IllegalAccessException e) { 113 | // TODO Auto-generated catch block 114 | e.printStackTrace(); 115 | } catch (ClassNotFoundException e) { 116 | // TODO Auto-generated catch block 117 | e.printStackTrace(); 118 | } 119 | return null; 120 | 121 | } 122 | 123 | public static void setFieldOjbect(String classname, String filedName, Object obj, Object filedVaule){ 124 | try { 125 | Class obj_class = Class.forName(classname); 126 | Field field = obj_class.getDeclaredField(filedName); 127 | field.setAccessible(true); 128 | field.set(obj, filedVaule); 129 | } catch (SecurityException e) { 130 | // TODO Auto-generated catch block 131 | e.printStackTrace(); 132 | } catch (NoSuchFieldException e) { 133 | // TODO Auto-generated catch block 134 | e.printStackTrace(); 135 | } catch (IllegalArgumentException e) { 136 | // TODO Auto-generated catch block 137 | e.printStackTrace(); 138 | } catch (IllegalAccessException e) { 139 | // TODO Auto-generated catch block 140 | e.printStackTrace(); 141 | } catch (ClassNotFoundException e) { 142 | // TODO Auto-generated catch block 143 | e.printStackTrace(); 144 | } 145 | } 146 | 147 | public static void setStaticOjbect(String class_name, String filedName, Object filedVaule){ 148 | try { 149 | Class obj_class = Class.forName(class_name); 150 | Field field = obj_class.getDeclaredField(filedName); 151 | field.setAccessible(true); 152 | field.set(null, filedVaule); 153 | } catch (SecurityException e) { 154 | // TODO Auto-generated catch block 155 | e.printStackTrace(); 156 | } catch (NoSuchFieldException e) { 157 | // TODO Auto-generated catch block 158 | e.printStackTrace(); 159 | } catch (IllegalArgumentException e) { 160 | // TODO Auto-generated catch block 161 | e.printStackTrace(); 162 | } catch (IllegalAccessException e) { 163 | // TODO Auto-generated catch block 164 | e.printStackTrace(); 165 | } catch (ClassNotFoundException e) { 166 | // TODO Auto-generated catch block 167 | e.printStackTrace(); 168 | } 169 | } 170 | 171 | } 172 | --------------------------------------------------------------------------------