文章目录 一、Android 逆向用途 二、Android 逆向原理 一、Android 逆向用途 ---- Android 逆向用途 : 软件防护 : 根据逆向的方法针对性的开发防护策略 ; 算法研究 在没有源码的前提下 , 通过反编译 , 反汇编 , 拿到 Smali 代码 , 研究其产品的算法 , 实现途径 ; 接口分析 : 接入一个没有源码的第三方库 , 无法进行调试 , 出现问题后 , 可以使用逆向的方法 , 可以进行破解使用 ; 调试分析 : 应用打包 , 混淆 , 加固 后上传到应用市场 , 如果某个分发渠道版本出现问题 , 可能就需要调试分析具体的这个 APK 包的问题 ; 结合源码与渠道包进行逆向分析 , 查找问题原因 ; 二、Android 逆向原理 ---- Android 逆向原理 : 静态分析 : 反编译 , 反汇编 , 从 .so , .a , .dex 等函数库中提取相应信息 , 主要是分析静态文件二进制数据
CTF逆向——常规逆向篇(下) 题目: CrackMe.exe(NSCTF reverse第一题) WHCTF2017 reverse HCTF reverse(第一题) CrackMe.exe(NSCTF
(参考文献见后) 一.什么是逆向分析 1.逆向工程 科锐钱老师真的是大佬,拥有十余年的逆向工作经验,专注于先进技术的算法还原及逆向实训。作者从中学习到很多知识。 第一个大家需要知道的是“什么是逆向工程?” 什么是逆向工程? 简单而言,一切从产品中提取原理及设计信息并应用于再造及改进的行为,都是逆向工程。 当然还有模具逆向、材料逆向、软件逆向,在我们的软件行业,就称为软件逆向。 逆向应用——病毒分析 对于逆向分析,最大的行当就是病毒分析。 当然,我们的信息安全是正能量的,逆向分析主要是剖析病毒,包括: 逆向病毒,获取病毒传播方法,可以遏制病毒传播 逆向病毒,获取病毒隐藏手段,可以根除病毒 逆向分析病毒,获取功能目的,可以溯源定位攻击者 逆向应用
逆向目标目标:某蜂窝 APPapk 版本:11.2.0逆向参数:zzzghostsign抓包分析打开 app,在首页进行刷新,charles 配合 SocksDroid 进行抓包,结果如下:其中要逆向的参数有很多 逆向分析对 Java 常见的 api 进行 hook 操作:定位这个参数的方法有很多,这里我们使用 frida 对 java 的 StringBuilder 类进行 hook,StringBuilder unidbg 还原unidbg 是一款基于 unicorn 和 dynarmic 的逆向工具,一个标准的 java 项目,它通过模拟 Android 运行时环境,让用户能够在没有实际设备的情况下,分析和调试 关于 unidbg 的更多使用方法,可以看吾爱破解正己大佬写的文章:《安卓逆向这档事》第二十三课、黑盒魔法之 Unidbg:https://www.52pojie.cn/thread-1995107-1
前言近期在知识星球中,有位星友在逆向一个航司的时候,遇到了点阻碍,向我提问,本期就对该网站进行逆向分析:逆向目标目标:cebupacificair 航空查询逆向分析网站:aHR0cHM6Ly93d3cuY2VidXBhY2lmaWNhaXIuY29tL2VuLVBILw content,估计都大差不差,我们继续先搜索,发现 authorization 是 main.xxx.js 文件返回的:而 main.xxx.js 文件是通过首页加载的,大致流程都梳理清晰了,我们开始进行逆向分析 :逆向分析cookie 值从头开始,我们请求首页,发现他并没有返回 main.xxx.js 文件,而是返回的下图内容:发现里面的 JavaScript 代码就是设置了两个 cookie 值,而且仔细就看会发现 eccha = execjs.eval(__eccha_str)cookies = { '__eccha':str(__eccha), '__ecbmchid': __ecbmchid}我们需要逆向分析的参数 handle 下的位置上打下断点,继续往上跟:发现 m 由 i 生成,我们继续重新打下断点,清空缓存,刷新网页:定位到 t 为 ceb-omnix_proxy 接口,继续往上跟:就找到生成位置了:然后开始逆向分析
某app登录协议逆向分析 设备 iphone 5s Mac Os app:神奇的字符串57qm5Y2V 本文主要通过frida-trace、fridaHook、lldb动态调试完成破解相应的登录算法, 从达到登录成功,并根据该步骤完成ios逆向分析,文中所有涉及的脚本都已经放在github上面。 弟弟建了一个ios逆向学习交流群,互相学习交流。 抓包分析 之前文章已经进行了详细的抓包教程。 请求参数分析 这里涉及到的frida相关环境安装配置可以参考ios逆向-frida&环境&破解appSign算法[2] ydtoken 通过砸壳以及ida分析 加密是通过yd_md5:方法进行加密, bb%e7%bb%9f%e6%8a%93%e5%8c%85%e5%85%a5%e9%97%a8%e5%ae%9e%e8%b7%b5%e4%b9%8b%e7%9f%ad%e9%93%be/ [2] ios逆向
基础性文章,希望对您有所帮助,作者的目的是与安全人共同进步,加油~ 文章目录 一.什么是逆向分析 1.逆向工程 2.逆向分析的典型应用 二.扫雷游戏逆向分析 1.游戏介绍 2.OllyDbg动态分析 三 (参考文献见后) ---- 一.什么是逆向分析 1.逆向工程 科锐钱老师真的是大佬,拥有十余年的逆向工作经验,专注于先进技术的算法还原及逆向实训。作者从中学习到很多知识。 当然还有模具逆向、材料逆向、软件逆向,在我们的软件行业,就称为软件逆向。 ---- 2.逆向分析的典型应用 软件逆向有很多实现办法达到我们的目标,典型的应用包括软件工程、网络安全、司法取证、商业保护等。 ? 逆向应用——病毒分析 对于逆向分析,最大的行当就是病毒分析。 当然,我们的信息安全是正能量的,逆向分析主要是剖析病毒,包括: 逆向病毒,获取病毒传播方法,可以遏制病毒传播 逆向病毒,获取病毒隐藏手段,可以根除病毒 逆向分析病毒,获取功能目的,可以溯源定位攻击者 逆向应用
编译 : 将 so , dex , 清单文件 , 资源文件 , 等文件封装起来 ; 汇编 : 将 C/C++ 代码转为机器码 , 将 Java 代码转为 Smali 代码 ; 参考 【Android 逆向 PyCharm | 安装 PyCharm | 在 PyCharm 中创建 Python 工程 ) 在 Windows 下安装 PyCharm 软件 , 用于开发 Python 程序 ; Android 逆向中
逆向目标 目标:有道翻译接口参数 主页:https://fanyi.youdao.com/ 接口:https://fanyi.youdao.com/translate_o? smartresult=dict&smartresult=rule 逆向参数: Form Data: salt: 16261583727540 sign: 151e4b19b07ae410e0e1861a6706d30c bv: 5b3e307b66a6c075d525ed231dcc8dcd 逆向过程 抓包分析 我们在有道翻译页面随便输入文字,可以看到没有刷新页面,翻译结果就出来了,由此可以推断是 Ajax 加载的, 参数逆向 salt、sign、bv 三个加密参数,全局搜索任意一个,搜索结果比较多,依次对比,可以发现 fanyi.min.js 文件第 8969 行左右开始,Form Data 所有的参数都齐全了,埋下断点调试一下
逆向工程字面意思就是反向生成工程,和hibernate一样mybatis也有自己的逆向工程工具,hibernate的逆向生成我没有做过,不过我猜大概都已样,再说,hibernate的现在使用很少了,到了使用的时候再去用吧 ,使用逆向工程时,需要注意的是表之间的关系无法映射出来! 也就是说mybatis的逆向工程生成的都是单表操作, 1:mybatis逆向工程开发文档: http://www.mybatis.org/generator/configreference/xmlconfig.html 2:使用逆向工程生成代码有好几种方式,这里就介绍一种最简单的,java程序生成:,解释在配置中 2.1准备逆向工程配置文件genreatorConfig.xml,名字无所谓,只要在java程序中作为 --生成对应表及类名,需要记住的一点是逆向工程无法生成关联关系,只能生成单表操作--> <table tableName="student" domainObjectName="Student
前言最近又有小伙伴在逆向某网站的时候,碰到了点棘手的问题,过来询问 K 哥。经过分析,该网站既有加密参数,又使用了 WebSocket 协议来传输数据,正好可以丰富 JS 逆向百例专栏。 本文将对其进行逆向分析,仅作为学习研究:逆向目标目标:某 Hospital,逆向分析网址:较为敏感,感兴趣的小伙伴,私聊逆向过程抓包分析打开开发者人员工具,刷新网页,会发现被断住了,经典的无限 debugger 接下来看看 /api/v1/sessions 接口,其请求参数和响应内容,都经过了加密处理:逆向分析先来看看 sessions 接口的加密参数是如何生成的,清空缓存,刷新网页,跟栈,从 e.sessionData
1.2ios应用逆向工程的作用 1.2.1安全相关的ios逆向工程 1.评定安全等级 2.逆向恶意软件 3.检查软件后门 4.去除软件使用限制 1.2.2开发相关的ios逆向工程 1.逆向系统API 对于不上架的app 面向cydia 2.借鉴别的软件 比较有意思的软件 录音软件Audio Recored 老牌软件架构设计合理 借鉴他们使用哪个的高级技术 如WhatsAPP 1.3ios应用逆向工程的过程 软件的核心代码还原 1.3.1系统分析 进行操作观察行为特征 查看Documents目录 查看数据库文件 1.3.2代码分析 对app的二进制文件进行代码分析 推导出这个app的设计思路、内部算法、实现细节 ios逆向工程论坛 http://bbs.iosre.com 1.4ios应用逆向工程的工具 监测工具、反汇编工具(disassembler)、调试工具(debugger),以及开发工具 1.4.1 监测工具 起到嗅探、 上述目录中的内容多用于系统层,逆向难度较大 作为ios开发者,日常操作所对应的功能模块大多来自ios的独有目录 .
栈是计算机科学里最重要的且最基础的数据结构之一。 从技术上讲,栈就是CPU寄存器里面的某个指针所指向的一片内存区域。这里所说的某个指针通常位于x86/x64平台的ESP寄存器/RSP寄存器,以及ARM平台的SP寄存器。 操作栈最常见的指令是PUSH和POP,在 x86 和 ARM Thumb 模式的指令集里都有这两条指令。 PUSH指令会对ESP/RSP/SP寄存器的值进行减法运算,使之减去4(32位)或8(64位),然后将操作数写到上述寄存器里的指针所指向的内存中。 POP指令是PUSH的逆操作:他先从栈指针(Stack Pionter,上面三个寄存器之一)指向的内存中读取数据,用以备用(通常是写到其他寄存器里面),然后再将栈指针的数值加上4或8. 在分配栈的空间之后,栈指针,即Stack Pointer所指向的地址是栈的底部。PUSH将减少栈指针的数值,而POP会增加它的数值。栈的“底”实际上使用的是整个栈的最低地址,即是整个栈的启始内存地址。 ARM的栈分为递增栈和递减栈。递减栈(descending stack)的首地址是栈的最高地址,栈向低地址增长,栈指针的值随栈的增长而减少,如STMFA/LMDFA、STMFD/LDMFD、STMED、LDMEA等指令,都是递增栈的操作指令。
1、背景 在CTF比赛中, CTF逆向题目除了需要分析程序工作原理, 还要根据分析结果进一步求出FLAG。逆向在解题赛制中单独占一类题型, 同时也是PWN题的前置技能。 CTF逆向主要涉及到逆向分析和破解技巧,这也要求有较强的反汇编、反编译、加解密的功底。 CTF中的逆向题目一般常见考点 1、常见算法与数据结构。 2、各种排序算法, 树, 图等数据结构。 逆向解题常见技巧 1、逆向分析与功能猜测结合, 通过逆向分析进行缩小猜测范围, 猜测为逆向指出方向, 逆向再验证猜测的思路。 3、 逆向自定义实现的算法: 这类题目就需要去逆向题目作者自己编写实现的算法了,这样的算法难度相对比较难,在逆向过程中需要识别出其是算法问题题目,然后分析出其每个函数代表什么操作来进一步解题,需要逆向算法的题目一般都比较难 反调试是逆向的第一个门槛,只有跨过这个门槛,逆向才能真正开始。 下面针对调试反调试的技术总结方案可以借鉴学习。
jar包 图片 log4j-1.2.16.jar:日志包 mybatis-3.2.3.jar:mybatis包 mybatis-generator-core-1.3.2.jar:逆向工程包 mysql-connector-java
调试逆向技术 动态分析技术:指的是使用调试工具加载程序并运行。 随着程序运行,调试者可以随时中断目标的指令流程,以便观察相关计算的结果和当前的设备情况。 静态分析技术:是相对于动态分析而言的。 常用逆向工具 Ollydbg、 Windbg、 SoftICE、IDA、 PEiD、 W32Dasm、 C32asm等等。
mybatis逆向工程的作用是根据数据库里的表结构自动生成实体类,映射文件,和接口。 和hibernate的自动建表相反。 Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件 MyBatis3Simple" defaultModelType="flat"> 代替 <context id="testTables" targetRuntime="MyBatis3"> 2.重构时,多次运行逆向工程
apktool apktool主要用于逆向apk文件。它可以将资源解码,并在修改后可以重新构建它们。它还可以执行一些自动化任务,例如构建apk。
逆向工程 逆向工程概念 MBG概念 步骤1: 导入相关依赖 引入mybatis-generator.xml配置,建议从官网文档粘贴后,进行配置修改 使用代码运行,也可以用命令行 效果 小tips 使用插件方式启动 mbg,需要在build标签中进行设置,以及引入最开始给的插件依赖 MBG的具体使用看这篇文章 逆向工程概念 ---- MBG概念 ---- 步骤1: 导入相关依赖 <! --mybatis的逆向工程--> <dependency> <groupId>org.mybatis.generator</groupId> --table:指定要逆向生成哪个数据表 tableName:指定表名 domainObjectName:数据库中的表对应生成的实体类的名字 </configuration> </plugin> </plugins> ---- MBG的具体使用看这篇文章 MBG的使用 mybatis 逆向工程
谈谈我对逆向工程的一些理解和感悟。 引言 逆向工程,原名Reverse Engineering,简称RE。 准确地说,逆向工程包括软件逆向工程——即本文所讨论的,也包括硬件逆向工程。那么硬件逆向是怎么做的呢?据我所知,我国的芯片设计水平普遍比国外落后10年。 挣扎的过程之一就是芯片逆向。 这也引出了一个问题,当我们在谈论逆向的时候,我们在谈论的是什么? 软件逆向 二进制逆向就是IDA-Pro + F5一把梭吗?Java逆向就是JADX一把梭吗? 关于快乐 逆向应该是快乐的,但很多人不想让你快乐。于是有了各种符号加壳、混淆、加密、解释执行(虚拟机)等应用增强方案,来提高逆向工程的难度。