当前位置: 首页 > news >正文

ApkScan-PKID 查壳工具下载使用以及相关技术介绍

ApkScan-PKID 查壳工具下载与使用


文章目录

  • ApkScan-PKID 查壳工具下载与使用
  • 前言
  • 一、 关于壳的介绍
  • 二、 关于壳的技术资料
  • 三、 APKSCAN-PKID的下载
  • 四、 APKSCAN-PKID的使用
  • 总结


前言


一、 关于壳的介绍

1、壳的功能:壳最本质的功能就是实现加载器,壳是指在一个程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务,深入点就是在apk外面再套一层壳,在运行的时候这层壳会把真正的apk的dalvik指令集释放出来,为apk加壳是目前主流的防护方案,真正的源码是隐藏在壳之下的,要想拿到源码研究其逻辑就要先想办法将壳脱掉,所以我们拿到一个apk要逆向的第一步就是用查壳工具看下这个apk文件是否加壳,以及加了什么壳,然后想办法把壳脱掉,拿到dex文件再去分析。
注意:壳绝对不能改变原来代码的执行流程;加壳程序也不能对源程序有任何的影响。
2、apk的组成原理:apk壳和pc端的都差不多,只是在处理不同的文件格式dex和exe中会有差别;导致不同的加壳;Android上的应用安装文件是apk格式的,这个apk文件其实就是个归档文件压缩包,把应用相关的源码、资源文件、配置文件等等都归档打包,直接解压之后就能得到app的dalvik指令集dex文件,然后再反编译为smali,还可以再反编译为Java,这样就几乎等同于拿到了app就能拿到可读性还蛮清晰的源码。
3、Android Dex文件加壳原理:Android APK加壳过程中,牵扯到三个角色:加壳程序(加密源程序为解壳数据、组装解壳程序和解壳数据)、解壳程序(解密解壳数据,并运行时通过DexClassLoader动态加载)、(源程序)需要加壳处理的被保护代码

二、 关于壳的技术资料

Dex文件结构:https://blog.csdn.net/androidsecurity/article/details/8664778
APK加壳原理简述:https://blog.csdn.net/amurocrash/article/details/79103189
Android APK加壳技术方案【1】:https://blog.csdn.net/androidsecurity/article/details/8678399
Android APK加壳技术方案【2】:https://blog.csdn.net/androidsecurity/article/details/8809542
Android4.0内存Dex数据动态加载技术https://blog.csdn.net/androidsecurity/article/details/9674251

三、 APKSCAN-PKID的下载

Windows版下载地址:https://www.jb51.net/softs/603472.html#downintro2

Java版下载地址:https://pan.baidu.com/s/1rDfsEvqQwhUmep1UBLUwSQ 密码: wefd

四、 APKSCAN-PKID的使用

Windows解压后双击即可打开,选择apk路径或直接拖放至exe中
在这里插入图片描述
在这里插入图片描述
Java版的需要用到Java环境
下载JAVA1.8链接: https://www.java.com/zh_CN/download/windows-64bit.jsp
JDK安装教程:https://blog.csdn.net/ACE_U_005A/article/details/114840497
启动步骤
1、环境安装好了之后就快捷键(Windows+R),在弹出窗口输入cmd进入命令窗口
在这里插入图片描述
2、输入指令:powershell进入ps:
在这里插入图片描述
3、输入指令:java -version检测java环境:
在这里插入图片描述
4、输入指令:java -jar .\ApkScan-PKID.jar启动pkid:
在这里插入图片描述
5、弹出程序后选择apk路径或直接将apk拖动至程序窗口中,即可进行查壳
在这里插入图片描述

总结

ApkScan-PKID 查壳工具更多请访问:www.legendsec.org

相关文章:

  • 从BNB遭黑客攻击(跨链桥BSC Token Hub遭到攻击),看公链中心化问题
  • 【多线程实践】一、为何使用多线程三种线程创建方式利弊分析
  • LIFELONG LEARNING WITH DYNAMICALLY EXPANDABLE NETWORKS论文阅读+代码解析
  • 计算机网络——集线器与交换机
  • 用通俗易懂的方式讲解:CatBoost 算法原理及案例
  • 系统架构演变和SpringCloud的定义:
  • 后端必会的前端vue基础知识
  • VGG16 - 咖啡豆识别
  • 2022.10.7 英语背诵
  • 『Android』什么是Service
  • 【Windows核心编程+第一个内核程序】爆肝120小时整理-80%程序员最欠缺的能力,一半以上研究生毕业了还不懂?理解各种深度技术的基本功
  • 【微信小程序】事件传参与数据同步
  • Android移动应用开发之Fragment
  • 分类评估方法-召回率、ROC与AUC
  • 《高性能MySQL》第五章:创建高性能的索引
  • (三)从jvm层面了解线程的启动和停止
  • CSS盒模型深入
  • django开发-定时任务的使用
  • express + mock 让前后台并行开发
  • Github访问慢解决办法
  • Java 多线程编程之:notify 和 wait 用法
  • Java知识点总结(JavaIO-打印流)
  • Magento 1.x 中文订单打印乱码
  • OSS Web直传 (文件图片)
  • React as a UI Runtime(五、列表)
  • TypeScript实现数据结构(一)栈,队列,链表
  • web标准化(下)
  • 力扣(LeetCode)357
  • 让你的分享飞起来——极光推出社会化分享组件
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​如何防止网络攻击?
  • (NSDate) 时间 (time )比较
  • (rabbitmq的高级特性)消息可靠性
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (第二周)效能测试
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (翻译)terry crowley: 写给程序员
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (力扣题库)跳跃游戏II(c++)
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 分布式技术比较
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .skip() 和 .only() 的使用
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @SuppressLint(NewApi)和@TargetApi()的区别