jd-gui

Android 反编译初探 应用是如何被注入广告的

吃可爱长大的小学妹 提交于 2020-12-29 14:02:36
恩,周末在家感冒卧床打了两天dota 尴了个尬 1 概述 最近和朋友聊天,发现一些灰色产业链通过批量反编译市场上的apk,然后进行注入广告,再重新打包上渠道。 我想大家都不希望自己家的产品或者自己的app那么容易被“占据”,但是想要自身能够防御,首先要知道对方的手段。所以本篇博客的目的不是教大家如何破解别人的app,而是让大家提升安全防御意识,对我们的应用做一些必要的防护,让自己的app不会那么容易被“占领”。 因为是初探,也不需要掌握太多的技术,主要是各种工具的使用了~~ 2 工具 几个重要的工具,注意使用最新版本。 https://ibotpeaches.github.io/Apktool/ http://jd.benow.ca/ https://sourceforge.net/projects/dex2jar/ 相信就是为了学习,大家或多或少都使用过上述几个工具了: apktools主要用户反编译和打包; JD-GUI 主要用于对.class文件展示为源码(比如jar文件) dex2jar 主要用于将dex文件转化为jar文件 如果没有的话,自行下载,尽可能的下载最新版本。 题目是注入广告,那么我们选择一类广告注入,大多数app都有闪屏广告,那么我们就模拟:反编译一个apk,加入我们的闪屏广告页,然后重新打包。 3 步骤 首先需要准备一个apk,我们随便写一个简单的demo。

APP的混淆加固及反编译

醉酒当歌 提交于 2020-11-03 00:21:42
  混淆用于让apk被反编译后获取的代码难理解,加固用于让apk难于被反编译。两种操作都是对项目的安全措施,两个操作是不冲突的,可以选择其一,也可以两个操作都做。 混淆: 针对项目代码,代码混淆通常将代码中的各种元素(变量、函数、类名等)改为无意义的名字,使得阅读的人无法通过名称猜测其用途,增大反编译者的理解难度。 虽然代码混淆可以提高反编译的门槛,但是对开发者本身也增大了调试除错的难度。开发人员通常需要保留原始未混淆代码用于调试。 操作时机:项目打包时 操作方法:Android Studio中找到你的项目module的build.gradle,将minifyEnabled设置为true 加固: 针对apk,加固是多维度的安全防护方案,包括反破解、反逆向、防篡改等,可以防止应用被各类常见破解工具逆向,安全性要远大于单纯的代码混淆。 操作时机:项目打包成的apk文件 操作方法:使用360加固或者梆梆助手、 key.store文件取 Android Studio 下生成的 此加固工具还可以设置多渠道打包标识 反编译工具: 三大神器:apktool 、dex2jar-2.0、jd-gui 一、apktool篇 1、apktool:在文件目录下敲cmd,进入控制台,然后输入 apktool d XXX.APK (要反编译的apk) 2、会在目录下生成对应apk的文件目录 3

spring动态代理的理解(java)

佐手、 提交于 2020-10-14 11:52:06
java动态代理的理解 代理模式是设计模式的其中一种 , 也是Java相关框架中的重要应用。我也是初学者, 个人见解, 不喜勿喷, 简单的说就是需要 进行功能增强的代理类 和 原本真实对象的被代理类 会实现同样的接口, 代理类的字节码文件是在jvm运行的时候动态生成该类(下面进行的介绍), 但是代理类会多去继承一个Java中的 Proxy 类 , 代理类负责为代理类(也就是生成真是对象的java类)预处理信息、增强信息、过滤信息最终把已经增强的转发给代理类。然而,回想之后,代理类又是谁生成的呢? 因此,还需要一个类去动态的生成代理类,这个类在编写的时候还需要用到一个Java中的invocationhandler类,这个类是用于增强 被代理类 中的方法,也就是谁继承了invocationhandler,谁就要去实现该接口对需要增强的类的方法(该接口中的invoke方法), 并且通过调用 代理类生成器的生成代理类方法 ,就会去调用该实现类的invoke方法, 这是个人自己的理解,所说的动态生成器类就是在这个生成动态代理类的Java类中,不能有别的自己编写的Java类的引用( 可以在该类中看是否有import导入自己编写的类 ),万事俱备, 只欠东风, 那就是搞一个测试, 去看下按照自己的理解是否可行。 1.首先先编写dao和service的代码 dao实现部分代码 public

java代码混淆(使用 ProGuard 工具)

 ̄綄美尐妖づ 提交于 2020-10-02 07:59:39
参考文章: ProGuard简介 ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。它可以删除无用的类、字段、方法和属性,可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。常常用于Android 开发用于混淆最终的项目,增加项目被反编译的难度。 主要流程如下: ProGuard 会对输入的 JAR 文件按照压缩、优化、混淆、预验证的顺序依次进行处理,最后得到输出 JAR 文件; ProGuard 使用依赖类库(Library jars)来辅助对 Input jars 类之间的依赖关系进行解析,但是依赖类库本身不会被处理,也不会被包含到 Output jars 中。 下载ProGuard工具 下载最新版的 ProGuard,然后解压,进入到 bin 目录,Windows 下直接双击 proguardgui.bat 即可,而 Mac Os 下控制台运行 proguardgui.sh 即可。 下载地址: https://sourceforge.net/projects/proguard/files/latest/download 本次演示是在 Mac Os 下,控制台输入 sh proguardgui.sh。ProGuard

Android逆向反编译代码注入APK过程思路分析

孤人 提交于 2020-09-29 20:36:10
一、名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密、反汇编、系统分析等多种计算机技术,对软件的结构、流程、算法、 代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、 算法、处理过程、运行方法及相关文档等。 反编译 – 指把机器码(汇编语言) → 高级编程语言,也就是通过反编译工 具对低级语言进行逆向工程,获取其源代码,比如Java的反编译,就是将 class文件转换成java文件。 APK - (全称:Android application package,Android应用程序包)是 Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动 应用及中间件,一个包含所有代码和资源文件的压缩包。 二、反编译工具 Apktool 功能: 将APK文件反编译出程序源代码、图片资源、布局文件以 及smali文件等,并能将编译后的项目重新打包成APK。 dex2jar 功能: 将classes.dex转化成.jar文件。 JD-GUI 功能: 查看.jar源码文件。 三、注入思路流程图 四、流程详解 将目标apk反编译出smali1文件; 把目标apk解压后,使用dex2jar工具将dex文件转为jar文件; 通过JD打开jar文件,查看目标App业务逻辑,找到对应 注入的地方; 开发jar包库文件;

apk 反编译

时光总嘲笑我的痴心妄想 提交于 2020-08-18 21:11:03
apk 反编译 - 最新版图文教程 结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片)、layout、样式、相关的实现代码等。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,学习) 后续也会再整理一篇防止反编译的教程 转载请注明出处 一、准备工具 提示:这些工具在官网都不好下载,偶也是废了好大力气呢,建议直接下载我提供的网盘链接 (1) 使用工具介绍: 1.apktool 最新版 jar 包 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 2.dex2 jar 的zip包 作用:将apk反编译成java源码(classes.dex转化成jar文件) 3.jd-gui 工具 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 (2) 使用工具下载与安装: 1.apktool_2.3.4 jar 包(2018.10.31 目前最新版) 百度网盘地址: https://pan.baidu.com/s/1Vp6PDUc9dfgN0QPtwFp4Zw 密码:c8n3 官网下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/ 2.dex2 2.0 jar 包(2018.10.31

apk 反编译

偶尔善良 提交于 2020-08-18 06:32:20
apk 反编译 - 最新版图文教程 结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片)、layout、样式、相关的实现代码等。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,学习) 后续也会再整理一篇防止反编译的教程 转载请注明出处 一、准备工具 提示:这些工具在官网都不好下载,偶也是废了好大力气呢,建议直接下载我提供的网盘链接 (1) 使用工具介绍: 1.apktool 最新版 jar 包 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 2.dex2 jar 的zip包 作用:将apk反编译成java源码(classes.dex转化成jar文件) 3.jd-gui 工具 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 (2) 使用工具下载与安装: 1.apktool_2.3.4 jar 包(2018.10.31 目前最新版) 百度网盘地址: https://pan.baidu.com/s/1Vp6PDUc9dfgN0QPtwFp4Zw 密码:c8n3 官网下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/ 2.dex2 2.0 jar 包(2018.10.31

Java程序员必备 : Java反编译神器——“GUI” 资源分享

岁酱吖の 提交于 2020-08-17 03:52:35
程序员必备 : Java反编译神器——“GUI” 资源分享 GUI简介 GUI下载及安装 GUI简介 当我们编写完成一个java类后,运行结果会得到一个class文件,这种二进制文件如果用普通记事本打开,就会出现各种乱码现象,令人十分头疼,当我们要查看.class文件的源代码时,可以通过反编译工具jd-gui实现。 “jd-gui”工具十分小巧,但功能很强大。当你将一个class文件拖入到反编译窗口,它可以显示出还原度极高的Java源文件。因此gui工具也是每一个Java开发程序员的必备工具。 GUI下载及安装 百度云下载 提取码 : q71f 如遇文件无法下载或使用中有任何问题,请在下方留言或微信联系 微信号 :HD15542547268 来源: oschina 链接: https://my.oschina.net/u/4340499/blog/4483555

你离黑客的距离,就差这20个神器了

自作多情 提交于 2020-08-15 02:51:34
在不少电影电视剧中,主角的身边都有这么一位电脑高手:他们分分钟可以黑进反派的网络,攻破安全防线,破解口令密码,拿到重要文件。他们的电脑屏幕上都是一些看不懂的图形和数字,你能看懂的就只有那个进度条,伴随着紧张的BGM,慢慢的向100%靠近······ 上面的场景和套路是不是很眼熟? 影视作品中的黑客当然有夸张和戏剧化的表现,不过,现实世界中的黑客也有一套他们的工具库,轩辕君梳理了常用的20个工具。有了他们,你也能化身电脑高手,成为那个瞩目的焦点。 以下分系统终端侧和网络侧两个方向,分别介绍10款常用的黑客工具。 - OllyDbg - WinDbg - IDA - APIMonitor - PCHunter - ProcExp - ProcMon - dex2jar - jd-gui - Mimikatz - WireShark - Fiddler - nmap - netcat - Nessus - SQLMap - hydra - shodan - zoomeye - metasploit 系统终端 系统终端侧的工具主要用于程序逆向分析、破解等用途。 OllyDbg 调试工具,简称OD,其名头在圈子里也算得上是顶流了。其黑客风的交互界面,丰富便捷的调试功能成为软件破解爱好者的首选利器。 WinDbg 也是一款调试工具,微软出品,必属精品?与上面的OD不同,它的界面就要朴素无华许多

使用JadClipse反编译代码

最后都变了- 提交于 2020-08-12 09:50:24
说明:当我们需要反编译jar 包或者查看 .class 类型文件时,我们首先会想到使用 jd-gui.exe 工具,但是在 eclipse 中查看时总觉得这样做很繁琐,以下步骤简述如何在 eclipse 中查看 .class 类型和 *.class without source 类型文件。 下载插件包 下载地址为: http://sourceforge.jp/projects/sfnet_jadclipse/releases/ ,如图一所示: 图一 根据不同的eclipse 版本下载不同版本的 jar 包,我这里下载的是 net.sf.jadclipse_3.3.0.jar 。 安装插件包 将 net.sf.jadclipse_3.3.0.jar拷贝到 eclipse 安装目录 /plugins 文件夹下,将 jad.exe 拷贝到任意目录,比如我的目录为: D:\Users\jd-gui\jad.exe ,关于 jad 的使用方式参考博文: 反编译工具 jad 的使用 修改 eclipse 启动方式,如图二所示:在目标后面增加“ -clean ”强制重新载入插件。 图二 启动 eclipse ,依次打开 Window->Preferences->Java ,修改 Path to decompiler 的值,如图三所示: 图三 依次打开 Window->Preferences-