首页
学习
活动
专区
圈层
工具
发布

android加密参数定位方法

在逆向一个Android程序时,如果只是盲目的分析需要阅读N多代码才能找到程序的关键点或Hook点,本文将分享一下如何快速的找到APP程序的加密参数位置,其实不论是找关键位置、找hook点,找加密参数、...巧用搜索-静态分析 一般静态分析找加密参数的流程都是先查壳(脱壳)、反编译、查找程序的入口方法、分析程序的执行流程。...假设已经使用Android killer反编译了未加壳的app,直接使用工程搜索检索需要查找的参数名,根据AK的反馈信息进行对比,找到其对应的参数位置。...Frida代码如下: var Base64Class = Java.use("android.util.Base64"); Base64Class.encodeToString.overload("[B...不再细说了,本文简单总结一下。 大家现在对哪阶段的内容会更感兴趣,望留言告知,感谢大家。

1.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    参数加密签名 & JS逆向

    目前对请求参数全做加密的网站数量并不多,我猜测其中一部分原因是一旦这么做,绝大多数的waf和态势感知类产品防护都会失效,大多数目前主要是对网站返回数据进行了加密,同时加上一些请求头加密、风控措施等 但我预测在未来几年...以某个网站为例,主要完成编写请求加密过程,主要思路是找出所有网站用于校验的加密参数以及请求头,通过断点调试的方式找到加密过程,本地复现该加密过程,成功发起请求,如果时间允许,再完成返回包解密工作 找出加密的值...,其加密参数是由客户端向 https://gate.lagou.com/system/agreement 发起请求后获得的 这是一个 POST 请求,请求头并没有加密值 请求体包含一加密参数,格式可能为...data 已经生成了,此时我们可以从该位置,一点一点向前寻找加密过程 我们在源代码界面,添加 xhr 断点 点击搜索按钮 此时请求体参数已经是加密的了,我们向前追踪一下(当然,之前处理其他参数的时候...,是否这个函数直接就解密了 可以看到直接就是我们的加密的返回值呀,那倒是简单了,直接扒代码 Mt = function(t) { kt = Tt.enc.Utf8.parse(Jt("aesKey

    2.9K21

    凯撒加密的最简单的理解与实现(Java版)

    凯撒加密 前言 这是我的第一篇博客希望以后多多关注。...这篇文章起源于我在人工智能导论上的一次摸鱼◔ ‸◔,当时老师一节课都在脱离课本介绍,讲什么网络安全之类的问题,后面还举例子了一些加密方法巴拉巴拉,然后就开始介绍起来了凯撒加密,让大家找规律,我觉得还蛮有意思...,而且比较简单,这个东西,然后在可以手动完成加密的基础上,想要体现一下俺2年算法水平,然后就尝试的实现了一下(。◕‿◕。)。...第一次看这个PPT的时候,让猜凯撒加密的原理其实,一看有点难的亚子(•ิ_•ิ),但就在一瞬间突然明白辽,还是很简单的(..•˘_˘•..)。...再按照密钥的字母顺序从上到下来读取,就可以获得密文了,是不是很简单呀,这个手动算凯撒加密,于是我就想要使用程序做出来,由于最近再学java,于是我就要来展示一下我的java水平了。

    43610

    基于JAVA的RSA非对称加密算法简单实现

    所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。...RSA实现   在我们JAVA中,我们可以使用RSA生成公钥和私钥,公钥可以直接放在H5,APP等前端程序中,即使被拿到,想要用公钥破解出私钥也是极难的。...通过RSA公钥加密明文,加密后的密文发到服务端,服务端用RSA私钥解密得出明文。...  在main方法里执行以下代码,可以简单看一下效率,1024位的密文效率也还可以,推荐在项目中使用。...); System.out.println("解密密文消耗时间:"+(System.currentTimeMillis() - startTime)+"ms"); } 以上就是针对于RSA的简单使用

    1.2K40

    Java可变参数以及一个简单应用

    一、背景 写代码的时候接触到了Java可变参数,顺便断点调试观察了一下表现,有个别地方确实有些意外。 虽然用起来不难,但是趁机想彻底了解这个语言特性,在此总结一下。...二、可变参数介绍 2.1 定义     可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。     注意:可变参数必须位于最后一项。...之前也看到过可变参数的前面还写同类型参数的情况,这种情况是因为必须有一个以上的参数。 2、当调用时只传一个参数效果是啥样?...如果更多参数,则可变参数依然是数组。 四、结论 可变参数的核心是将参数封装为数组,但是传入null时并不是只含有一个null元素的数组,而是null。...这样才能提高的更快,否则永远只是会用,永远只是知道最常用的,看啥都觉得简单,但是学啥都不太深入,讨论问的的时候或者面试的时候问的稍微深点就不会了。

    53720

    凯撒加密算法(最简单的对称加密)

    凯撒算法 概述 凯撒密码是罗马扩张时期朱利斯• 凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。...凯撒加密,右移2位对应结果图 因此,假如有个明文字符串“Hello”用这种方法加密的话,将变为密文: “Jgnnq” 。而如果要解密,则只要将字母向相反方向移动同样位数即可。...这里,移动的位数“2”是加密和解密所用的密钥。...输出的结果: 原文:Hello 加密后:Jgnnq 解密后:Hello 安全性 凯撒密码由于加解密比较简单,密钥总共只有 26 个,攻击者得到密文后即使不知道密钥,也可一个一个地试过去,最多试...:" + cipher + "\r\n解密后:" + text); } } 这里不光根据 offset 偏移进行加密,还加上了字符所在的下标进行混合加密。

    10.7K100

    简单的加密壳实现

    编译环境 xp + vc6 加壳过程 把源文件(被保护的exe),加密后放入到壳子程序的最后一个节里 实现代码 宏 #define ENDPATH "C:\\LOADSHELL.exe" //加壳后文件存放的路径...壳子程序新增加节 参数说明: path :要新增节文件的路径 n:要新增多少字节 LSADDRESS:得到新生成节的首地址 void addnewsec(IN LPSTR path,IN DWORD...,我只是简单的进行异或 真正将源文件加载到壳子中 DWORD addshellcodeTolastSection(LPSTR srcpath,LPSTR despath) { LPVOID NewBuffer...CREATE_SUSPENDED, NULL, NULL, &ie_si, &ie_pi ); 主要目的是为了起后面的源文件,创建进程的路径就写自己本身 关键参数...程序入口和镜像大小都完全改变,已经在壳子中看不到任何cmd的影子 至此加密壳子实现完成

    1.9K20

    斗鱼password加密参数调试生成案例

    通过抓包发现请求体 Formdata 中的 password 进行了加密。 本案例演示如何通过控制台调试找到加密js方法。 最后使用python来模拟生成,文末附有代码。...斗鱼password加密参数js调试案例 1.确定接口 2.断点调试 3.模拟生成 4.Python调用 1.确定接口 2.断点调试 点击控制台的 initiator ,可查看当前的请求是哪一行触发...然后可找到 CryptoJS ,CryptoJS是支持加密的JavaScript库。...你也可以接着断点查看具体的加密过程。 3.模拟生成 把这段js复制下来。写入html,然后在控制台测试。 这个时候其实可以写一段代码直接通过浏览器的驱动来生成了。...4.Python调用 调用CryptoJS的md5模块时,加密的结果是一个数组,而不是我们常见的MD5值。 在 js中可以使用 toSting来直接转换成字符串。

    88220

    Java MD5加密与RSA加密

    区别:   MD5加密:     加密时通过原字符串加密成另一串字符串     解密时需要原加密字符串进行重新加密比较两次加密结果是否一致   T=RSA加密:     加密时通过原字符串生成密钥对(公钥...+私钥)     解密时通过公钥和私钥进行解密,解密出原字符串进行比较是否一致 个人观点: RSA加密略比MD5加密牛逼一点点   但凡事都有好坏    MD5加密执行效率比RSA慢 废话不多说上栗子...:   MD5加密: package cn.news.util; import java.security.MessageDigest; /** * * @author: 房上的猫 *...RSA加密与解密: package cn.news.util; import java.security.KeyPair; import java.security.KeyPairGenerator;...import java.security.PrivateKey; import java.security.PublicKey; import java.util.Base64; import javax.crypto.Cipher

    4.4K40

    用简单的后端代码进行页面的简单加密

    最近发现我有很多页面都是直接对接数据库的,但是没有加密,虽然我在robots.txt中设置了不被搜索引擎爬取的逻辑,但是还是难免会被扫到,这里的安全问题值得考虑。...没有经过数据库的验证,我暂时使用本地验证的方式对页面进行验证,可以满足一些普通页面的加密工作。加密或哈希处理。这意味着如果有人能够看到这个密码,他们就可以直接使用。理想情况下,应该对密码进行哈希处理,并在验证时比对哈希值。...为了提高安全性,可以考虑以下几个改进措施:使用HTTPS:确保所有的数据传输都是加密的,防止中间人攻击。...>其中密码是哈希加密的,所以我们需要对想要设置的密码进行hash加密,简单代码就能生成这个哈希值:<?

    80220

    jmeter参数化csv+用户参数配合(请求加密,返回解密)

    所有的接口都经过网关,意味着:入参和出参都需要加密,是所有的参数而不是单个参数的加密; 2.一共是三个接口,接口之间都需要获取上个接口返回的数据的某个值再全部加密后,去请求;    接口大致是这样的:...因为请求的内容都是加密后的,所以我们暂时不考虑请求的参数,或者可以简单说一下,上面截图中Body Data里的 ${smsResponse}就是前置处理器的最终加密后参数值; 0x03: 因为文章开篇就说了...我此次选用“用户参数”是因为在请求时参数都是加密后的,而加密前的参数必须要找个位置存放,所以就选择了它,废话不多,直接上图: ?...(把参数加密)。...备注:如果想查看是否真正加密成功,可以添加一个Debug Sampler在后面填写你加密后的参数,如图所示: ?

    2.7K10
    领券