- 博客(335)
- 资源 (69)
- 问答 (1)
- 收藏
- 关注
原创 1.4 IDA 桌面提示和技巧
1.4 IDA 桌面提示和技巧 IDA 包含大量信息, 桌面可能会变得异常混乱。 下面的提示帮助你充分利用桌面的功能。对 IDA 而言, 你的屏幕越大越好。 为此, 购买一台( 或两个) 特大号的显示器吧! 使用 View -> Open Subviews命令恢复你无意中关闭的数据显示窗口 使用 Windows -> Reset Desktop 命令可迅速将桌面恢复到原始布局 利用 Windows -> Save Desktop 命令保存你认为特别有用的当前桌面布局。 使用 W
2021-12-02 16:23:22
662
2
原创 1.3 IDA 桌面简介
1.3 IDA 桌面简介 (1)工具栏区包含与 IDA的常用操作对应的工具。 你可以使用 View Toolbars 命令显示或隐藏工具栏。 你可以使用鼠标拖放工具栏, 根据需要重新设定它们的位置。 带有单独一排丁具按钮的 IDA 的基本模式工具栏如图所示。用户可以使用 View -> Toolbars -> Advanced mode打开髙级模式工具栏。 髙级模式工具栏包含整整三排工具按钮。 (2)彩色的水平带是 IDA的概况导航栏, 也叫做导航带。 导航带是被加载文件地址空间的线性
2021-12-02 16:12:53
882
原创 1.2 IDA数据库文件
1.2 IDA数据库文件1.2.1 创建 IDA 数据库1.2.2 关闭 IDA 数据库1.2.3 重新打开数据库 选择加载选项, 单击 OK 按钮关闭对话框后, 加载文件的工作才真正开始。 这时, IDA的任 务是将选定的可执行文件加载到内存中, 并对相关部分进行分析。 随后, IDA 会创建一个数据库, 其组件分别保存在 4 个文件中, 这些文件的名称与选定的可执行文件的名称相同, 扩展名分别 为.idO、idl .nam 和.til。 .idO 文件是一个二叉树形式的数据库 .idl 文件包
2021-12-02 16:08:44
1621
原创 1 启动IDA
1.1 启动IDA New ( 新建)。 选择 New 将启动一个标准的 File Open 对话框来选择将要分析的文件。 根据选择的文件, IDA 会显示另外一个或多个对话框, 你可以选择特定的文件分析选项,然后再加载、 分析和显示该文件。 Go (运行)。 Go 按钮终止加载过程, 使 IDA 打开一个空白的工作区。 这时, 如果要打开一个文件, 可以将一个二进制文件直接拖放到 IDA 工作区, 或者使用 File 菜单中的某个选项打开该文件。 前面介绍过, 使用 File New 命令可启动 Fi
2021-12-02 16:06:35
1091
原创 EVAL混淆
EVAL混淆 eval:可以执行js代码,有返回值 对js进行base64编码 eval中执行base64编码后代码 //eval("function cc(){return '52Hz'} cc()") eval(atob("ZnVuY3Rpb24gY2MoKXtyZXR1cm4gJzUySHonfSBjYygp")) 可设置多重转码加密,先转码52Hz得到NTJIeg==,在进行二次转码 多重转码混淆 //eval("function cc(){return '52Hz'} cc()")
2021-11-13 17:29:57
965
原创 Hook重载方法
Hook重载方法无参重载有参重载注意 #类.重载方法.重载方法.overload() @无参重载则不填,有参则需要填写 utils.test.overload() 无参重载 import frida, sys # """标识多行字符串 # @包名+类名 jscode = """ Java.perform(function () { var utils = Java.use('com.xiaojianbang.app.Utils'); utils.test.ove
2021-11-13 15:03:10
1053
原创 Xposed使用技巧-反射
Xposed使用技巧-反射反射遍历所有方法和字段反射遍历所有内部类 反射遍历所有方法和字段 打印所有方法信息,不打印方法体 //12、反射获取当前类下所有方法信息并打印 @类的字节码 for (Method method : clazz.getDeclaredMethods()) { Log.i("52Hz", "Method:" + method.toString()); } //13、反射获取当前类所有字段 @类字节码
2021-11-13 14:23:15
1698
原创 Xposed Java反射大法
Java反射大法反射获取类方法并调用反射获取类字段并修改技巧反射获取类字段反射获取方法获取私有函数 反射获取类方法并调用 反射:在执行innerFunc函数之前获取reflect字段的值,并且调用ref1函数 反射获取类字段并修改 技巧 反射获取类字段 四种方法(clazz为类的字节码) 获取公有字段: getField:获取类的字段 getFields:获取当前类的所有字段:返回数组 获取私有字段: 不管什么类型都可以 getDeclaredField:获取类的字段 getDecla
2021-11-13 14:21:27
1893
原创 Xposed API详解
Xposed API详解Hook修改变量Hook普通方法回调函数XC_MethodHookXC_MethodReplacementHook获取参数与返回值获取参数获取返回值Hook构造函数无参构造有参构造Hook复杂函数Hook自定义类参数Hook替换函数与函数置空替换函数函数置空Hook内部类与匿名类内部类匿名类Xposed主动调用 Hook修改变量 静态变量(static):类被初始化,同步进行初始化 非静态变量:类被实例化(产生一个对象的时候),进行初始化 [外链图片转存失败,源站可能有防盗链机制
2021-11-12 17:17:27
4505
1
原创 JS算法逆向实战
JS算法逆向实战抓包调试扣取JS方法一方法二方法三方法四 抓包 url:https://www.##.com/ 登录:##:123456 调试 搜索:password、userid md5原生包含的值:123456789、abcdef、1732584193、271733879、1732584194… 1、搜索password 2、点进去然后代码格式化,再做查找 注意:赋值可能出现的形式: ##.password=# password=#(代码没有格式化删除空格,格式化后的代码需要加空格) ##=
2021-11-11 20:54:32
1739
原创 Hook构造方法
Hook构造方法 import frida, sys # """标识多行字符串 # @包名+类名 jscode = """ Java.perform(function () { var money = Java.use('com.xiaojianbang.app.Money'); money.$init.implementation = function (a, b) { console.log("Hook Start..."); send(ar
2021-11-11 20:38:11
413
原创 常见数据加密
常见数据加密常见数据加密取盐系列MD系列md5SHA系列长度特征(123456)对称系列与非对称系列特征 常见数据加密 抓包 调试 扣取js 改写 本地运行 #取盐校验 不可逆 ##MD系列 md5 md2 md4 密码+md5 ##SHA系列 sha1 sha256 sha512 #对称加密 AES DES 3DES #非对称加密 RSA (私钥、公钥) 同一个明文可以生成不同密文 取盐系列 MD系列 md5 默认key:0123456789abcdef、0123456789ABCDEF 长度
2021-11-10 21:56:44
878
原创 Frida-Hook普通方法
Frida-Hook普通方法 查看包名 Code import frida, sys # """标识多行字符串 # @包名+类名 # @类名+方法名 jscode = """ Java.perform(function () { var utils = Java.use('com.##.##.##'); utils.getCalc.implementation = function (a, b) { console.log("Hook Start...");
2021-11-10 15:12:48
436
原创 Xposed框架Android5.1下的环境配置
Xposed框架Android5.1下的环境配置Xposed框架Android5.1下的环境配置模块开发创建工程配置依赖打包配置清单文件CodeXposed标识文件编译APK测试消息过滤 Xposed框架Android5.1下的环境配置 Xposed框架XposedBridge install 模块开发 模块开发 创建工程 1、新建项目 2、新建lib目录,导入api包 配置依赖打包 3、将api.jar设置为可打开包,使用内部函数 设好好了app下的build.gradle会显示依赖lib包
2021-11-09 22:04:13
3294
原创 Xposed环境搭建
Xposed环境搭建JDK1.8Android Studio3.5Android SDKSDK ToolsDemo APK JDK1.8 尽量C盘,安装完成后并配置环境变量 Android Studio3.5 自定义安装,然后全选安装 配置 Android SDK SDK Tools Demo APK
2021-11-09 21:56:38
2510
原创 七、跟值技巧
七、跟值技巧 加密函数存在地方 智能提示:Ctrl 技巧 1、找到方法,然后按下Ctrl,找到有智能提示的就是方法块,然后找到起始行 2、看智能提示里面有没有你想要德数据,如果没有,则再往上一级查找f,然后看它的__proto__ 然后找到里面的open 然后再找到open下的__proto__ 3、栈位置 ...
2021-11-09 14:29:39
281
原创 虚拟机详解
虚拟机 Android5.0以下dalvik虚拟机(jit机制) Android5.0及以上(aot机制) 注意: .dex => dexopt => .odex dalvik加载执行的是odex文件 .dex => dex2oat => .oat art加载执行的是oat文件
2021-11-08 13:30:08
158
原创 一、Docker简介
一、Docker简介 Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。 Docker 是在 GitHub 上开发的 Moby 开源项目的一部分。 Docker 公司,位于旧金山,是整个 Moby 开源项目的维护者。Docker 公司还提供包含支持服务的商业版本的 Docker。 Docker公司 Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。 有意思的是,Docker 公司起初是一家名为 dotC
2021-11-08 13:29:35
824
原创 安卓逆向环境
环境 JDK环境变量 SDK环境变量 adb 1.4.0—1.4.1升级 https://developer.android.com/studio/releases/platform-tools NDK环境变量
2021-11-06 12:45:14
215
原创 二、断点详解
二、断点DOM断点-3DOM事件断点-3XHR断点全局事件断点异常捕获断点 WEB代码运行时间轴 加载html代码-css-js 运行js初始化 用户操作(触发某个事件) 调用了某段js 加密函数 给服务器发信息 创建XHR对象,XHR-SEND 接收到服务器数据 解密函数 刷新网页渲染 DOM断点 DOM事件断点 XHR断点(发包断点) 代码行断点 (手动下断点) 源码 debugger 全局事件断点(浏览器事件断点) 异常捕获断点 DOM断点-3 重新选然后,属性发生改变或者样子发生改变才
2021-11-06 11:40:59
280
原创 十一、Shiro页面整合thymeleaf
十一、Shiro页面整合thymeleaf1、新建Spring Boot项目2、引入依赖3、页面中引入命名空间4、修改5、常见权限控制标签使用6、加入shiro的方言配置 1、新建Spring Boot项目 2、引入依赖 <dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId&
2021-11-06 09:55:27
183
原创 十、Shiro标签展示用户身份信息
十、Shiro标签展示用户身份信息修改index.jsp 修改index.jsp <%@page contentType="text/html; UTF-8%" pageEncoding="UTF-8" isELIgnored="false" %> <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> <!DOCTYPE html> <html lang="en"> <head
2021-11-06 09:53:17
227
原创 九、Shiro验证码
九、Shiro验证码验证码类VerifyCodeUtils修改UserController修改login.jsp修改UserController修改ShiroConfig 验证码类VerifyCodeUtils package com.hz52.springboot_jsp_shiro.Utils; import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt
2021-11-06 09:49:48
734
原创 八、springboot缓存之Redis
八、springboot缓存之Redis无序列化1、引入Redis依赖2、配置Redis依赖3、创建RedisCacheManager4、创建RedisCache5、创建MyByteSource6、修改CustomerRealm序列化RedisConfigRedisCacheRedisCacheManager自定义序列化MySerializeUtil创建RedisConfigjackson自定义序列化MyByteSource 无序列化 1、引入Redis依赖 <!--redis整合springbo
2021-11-06 09:47:44
491
原创 七、SpringBoot缓存之EhCache
七、SpringBoot缓存之EhCache1、Cache作用2、使用shiro中默认的EhCache实现缓存引入依赖修改ShiroConfig测试 1、Cache作用 Cachehu缓存:计算机内存中一段数据 作用:用来减轻DB的访问压力,从而提高系统的查询效率 流程: 2、使用shiro中默认的EhCache实现缓存 引入依赖 <!--引入shiro和ehcache--> <dependency> <groupId&
2021-11-06 09:43:57
218
原创 六、Spring Boot整合Shiro
六、Spring Boot整合Shiro6.1、整合思路6.2、创建spring boot项目6.3、引入shiro依赖6.4、配置shiro环境创建配置类ShiroConfig1.配置:shiroFilterFactoryBean2.配置WebSecurityManager3.配置自定义RelamShiroConfig配置自定义RealmCustomerRealm6.5、常见过滤器6.6、认证和退出修改UserController修改ShiroConfig修改login.jsp修改index.jsp修改C
2021-11-06 09:41:53
477
原创 五、Shiro授权
五、Shiro授权5.1、授权5.2、关键对象5.3、授权流程5.4、授权方式5.5、权限字符串5.6、shiro授权编程实现编程式注解式标签式5.7、开发授权基于角色进行控制修改CustmerMD5Realm修改testCustmerMD5Authenticator基于权限字符修改CustmerMD5Realm修改testCustmerMD5Authenticator 5.1、授权 授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源设有权限是无法访问的。
2021-11-06 09:03:15
179
原创 四、Shiro认证
四、Shiro认证4.1、认证4.2、shiro认证关键对象4.3、认证流程4.4、认证开发1、创建项目并引入依赖2、引入shiro配置文件并加入如下配置3、认证代码查看类的关系图4.5、自定义Realm1、shiro提供的Realm2、自定义Realm4、使用自定义Realm4.6、使用MD5和Salt1、自定义md5+salt错误加密(未加密)真正的加密使用MD5+Salt使用MD5+Salt+Hash2、测试测试-明文新建CustmerMD5Realm新建testCustmerMD5Authenti.
2021-11-06 09:01:51
3577
1
原创 一、面板介绍
面板一、ElementsEvent Listeners事件监听DOM Breakpoints断点二、NetWorkPreserve log不清除调试输出Disable cache是否禁止缓存定制化网速Filter筛选过滤器请求/返回头信息其他三、SourcesJS断点调试Watch监听Call Stack堆栈Console打印四、Application 一、Elements Event Listeners事件监听 DOM Breakpoints断点 添加断点事件 查看断点事件 二、NetWork
2021-11-05 11:51:35
203
原创 三、Shiro的核心架构
三、Shiro的核心架构3.1、Subject3.2、SecurityManager3.3、Authenticator3.4、Authorizer3.5、Realm3.6、SessionManager3.7、SessionDAO3.8、CacheManager3.9、Cryptography 3.1、Subject subject即主体,外部应用与subject进行交互,subject记录了当前操作用户,将用户的概念理解为当前操作的主体,可能是一个通过浏览器请求的用户,也可能是一个运行的程序。Subjec
2021-10-16 15:41:29
405
原创 二、什么是Shiro
二、什么是Shiro Shiro是一个功能强大且易用的java安全框架,它执行身份验证、授权、加密和会话管理,使用shiro易于管理的API,可以快速轻松的保护任何应用程序,从最小的移动应用程序到最大的web和企业程序。 ...
2021-10-16 15:39:39
206
原创 一、权限的管理
一、权限的管理1.1、什么是权限管理1.2、什么是身份认证1.3、什么是授权 1.1、什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证、认证通过后用户具有该资源的权限方可访问。 1.2、什么是身份认证 身份认证,就是判断一个用户是否为合法用户的处理过程,最常用的简单身
2021-10-16 15:38:53
2107
原创 Redis序列化
Redis RedisRedisRedis序列化乱码创建RedisConfig Redis序列化乱码 创建RedisConfig package com.hz52.system.config; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.cache.CacheManager; import org.springframework.c
2021-09-28 22:10:33
143
原创 Spring Boot整合多数据源
Spring Boot整合多数据源 Spring Boot整合多数据源Spring Boot整合多数据源pom.xmlapplication.ymlapplication.propertieslogback-spring.xmlMybatisPlusConfigMySQLConfigSQLServerConfig全局跨域DataGridViewBaseVoNoticeVo pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xm
2021-09-28 22:06:08
457
原创 二十八、数据操作语句
二十八、数据操作语句数据操作语句DML数据插入语句-INSERT数据更改-UPDATE 数据操作语句DML Data Manipulation Language其中包括数据库插入语句、数据更改语句、数据插入语句、数据更改语句。 数据插入语句-INSERT 向已经创建好的数据表中插入记录。可以一次性插入一条或多条记录。 INSERT INTO table_name(column_list) VALUES(value_list) table_name :指定要插入记录的表名 column_list :指定要插
2021-09-16 15:43:39
226
原创 二十七、重命名表、数据库
二十七、重命名表、数据库 重命名表 重命名列 复制整张表 select * into new_table from old_table
2021-09-16 15:42:11
127
原创 二十六、删除表、数据库以及修改
二十六、删除表、数据库以及修改DROP删除指定表DROP删除指定数据库修改表 ALTER:修改字段属性 ADD:表示向表中添加新的字段列,后面可以跟多个字段的定义信息,多个字段之间使用逗号隔开 DROP:删除表中的字段,可以同时删除多个字段,多个字段之间使用逗号隔开 DROP删除指定表 DROP TABLE 表名 注意,删除表的同时,表的定义和表中的数据、索引和视图也会被删除,因此在删除表之前,最好对表中的数据进行备份。如果要删除的表,是其他的参照表,此表无法删除。 DROP删除指定数据库 DROP D
2021-09-16 15:40:22
341
07-Python爬虫工程师-mitmproxy使用
2020-02-23
04-Python爬虫工程师-自动化测试
2020-02-22
06-Python工程师-Fidller使用
2020-02-23
09-Python工程师-移动端自动化
2020-03-05
03-Python爬虫工程师-抓包工具
2020-02-22
02-Python爬虫工程师-安卓模拟器
2020-02-22
05-JAVA程序流程控制三大结构
2020-05-28
Xposed Hook技术
2020-05-25
19-HBase优化
2020-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅