Python编程-执行Java代码的两种方式
Java环境配置和执行js代码需要先在本地配好node一样,执行java代码,需要先在本地安装Java
安装步骤可以参考:https://blog.csdn.net/m0_61961937/article/details/122906540
安装好后需要配置系统环境,直接把 \JDK xx.x.x\bin 配进 path 就行
配好后,运行 java 或 javac 命令,显示如下就表示成功:
Jpype简介这里我们使用 jpype 进行调用,pypi的介绍如下:
JPype is a Python module to provide full access to Java from within Python. It allows Python to make use of Java only libraries, exploring and visualization of Java structures, development and testing of Java libraries, scientific computing, and much more. By gai ...
APP逆向-so文件IDA调试入门
IDA Pro 7.0 下载https://www.newasp.com/soft/346032.html
静态/动态注册
当执行一个 Java 的 native 方法时,虚拟机是怎么知道该调用 so 中的哪个方法呢?这就需要用到注册的概念了,通过注册,将指定的 native 方法和 so 中对应的方法绑定起来(函数映射表),这样就能够找到相应的方法了。注册分为 静态注册 和 动态注册 两种。默认的实现方式即静态注册。
Android逆向技术–JNI的概念
Frida hook RegisterNatives用于得到动态注册的函数地址
https://github.com/lasting-yang/frida_hook_libart
用法:
1frida -U --no-pause -f package_name -l hook_RegisterNatives.js
猿人学 第十一题https://blog.csdn.net/zjq592767809/article/details/115201731
快捷键
tab 或 f5 转伪代码
资料:
Unidbg入门实战教程
A ...
APP逆向-猿人学-APP大赛-第二题-So文件剖析、Unidbg初试
题目分析定位到 ChallengeTwoFragment,hook 一下 sign 函数,直接右键 -> 复制为 frida片段就行
hook代码:
1234567let ChallengeTwoFragment = Java.use("com.yuanrenxue.match2022.fragment.challenge.ChallengeTwoFragment");ChallengeTwoFragment["sign"].implementation = function (str) { console.log('sign is called' + ', ' + 'str: ' + str); let ret = this.sign(str); console.log('sign ret value is ' + ret); return ret;};
hook结果:
可以看出参数很简单,就是 page:时间 ...
猿人学-APP大赛-第一题-Frida初试
如何用fiddler抓包参考:https://www.cnblogs.com/JKding233/p/16649489.html
先介绍一些前置知识点和环境配置
Frida 安装和运行pip3 install frida frida-tools
查看模拟器版本:
1234adb shellgetprop ro.product.cpu.abi>>> x86_64
下载对应 frida-server压缩包:(小于或等于本地frida版本)
解压缩,拿到里面的可执行文件:
1frida-server-16.2.1-android-x86_64
把可执行文件推送到手机里面:
1adb push frida-server-15.1.10-android-x86_64 /data/local/tmp/frida-server
启动 frida:
12345adb shellsucd /data/local/tmpchmod 755 frida-server./frida-server
配置接口转发,注意每次启动都需要配置:
12adb forward tcp:27042 ...
APP逆向-抓包方案汇总
Charles + Postern 方案
参考:https://blog.csdn.net/tianyi19/article/details/121254560
postern 下载:https://apkcombo.com/zh/postern/com.tunnelworkshop.postern/
fiddler + postern 方案
参考:https://blog.csdn.net/weixin_42750816/article/details/115797860
适用于app设置了不走代理 NO_PROXY,例如:https://app2.scrape.center/
fiddler 的配置就不赘述了,讲一下如何配置 postern
首先模拟器安装 postern,打开,分别清空 配置代理、配置规则
然后添加代理服务器,配置如下,保存
添加规则,保存
然后打开VPN,就可以看到fiddler 截获到请求了
r0capture hook 方案https://github.com/r0ysue/r0capture
环境
雷电模拟器9
安卓9
frida、frida-s ...
小白学黑客 - 文件上传漏洞
web安全的根本性原因:前端的输入是不可信的
漏洞链:各个漏洞之间的相互配合
源码审计:逻辑的安全性 & 调用函数的安全性
FUZZ:自动化模糊测试
工具篇
Burp Suite:请求拦截工具
Curl:命令行版本的Postman
HackBar 插件:渗透工具库
F12 -> HackBar 标签
https://chrome.google.com/webstore/detail/hackbar/ginpbkfigcoaokgflihfhhmglmbchinc
Wappalyzer 插件:网站分析工具
https://chrome.google.com/webstore/detail/wappalyzer-technology-pro/gppongmhjkpfnbhagpmjfkannfbllamg
漏洞发布平台:https://www.exploit-db.com/
渗透测试平台bwapp安装12docker pull registry.cn-shanghai.aliyuncs.com/yhskc/bwappdocker run -d -p 0.0 ...
web逆向-AST混淆还原实战
这里只列举出 visitor 的内容,其他配置参考原理篇
字符串还原123456789const visitor = { StringLiteral(path) { // 以下方法均可 // path.node.extra.raw = path.node.rawValue // path.node.extra.raw = '"' + path.node.value + '"' // delete path.node.extra delete path.node.extra.raw }}
效果:
12console['\u006c\u006f\u0067']('\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u006f\u0072\u006c\u0064\u0021');const name = "\x68\x65\x6 ...
web逆向-Javascript常见语法
在html里面设置cookie12345678910111213141516<script> // 设置cookie的函数 function setCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } // 调用函数设置cookie setCookie("FSSBBIl1UgzbN7N80S", "s1LcNviQmjHdZZfJlqwSLqH ...
web逆向-AST原理和环境准备
之前碰到有混淆的代码,都是依靠别人写好的插件,能不能还原听天由命
如果要冲高级工程师的话,AST是必备的一项技能,刚好现在有空,就花时间来研究一番……
参考资料:
K哥爬虫 - AST入门:https://mp.weixin.qq.com/s/fIbPuNMs5FRADJE5MOZXgA
崔庆才《网络爬虫开发实战 第二版》 AST 相关章节
环境准备:
AST 在线解析网站:https://astexplorer.net/
纯白色实在太过亮眼了,官方没有提供模式切换,不过这里有DIY方案,效果如下:
安装babel功能包:npm install @babel/core @babel/parser @babel/traverse @babel/generator @babel/types
解析代码 -> 语法树(parser)12345678910// 从文件读取const fs = require("fs");const code1 = fs.readFileSync('code.js', 'utf-8'); ...
web逆向-补环境笔记
补环境框架的搭建
js逆向补环境原理及基础知识 - 爬虫之家
js反爬检测原理及方法 - 爬虫之家
补浏览器环境框架之调试环境搭建 - 爬虫之家
浏览器环境基本框架设计及补window环境 - 爬虫之家
js逆向今日头条“补浏览器环境” - 爬虫之家
node、v8和chrome的关系
经常检测的六大属性,浏览器对象查询:https://developer.mozilla.org/zh-CN/docs/Web
window
screen
history
navigator
document
location
global (node对象)
优质范文
多个开源的js补环境框架测试 - Python成长路 - 博客园
vjstools自动补环境参考:
221JS逆向:v_jstools自动补环境
十一姐:https://www.bilibili.com/video/BV1Ap4y1K7F3/
插件地址:https://github.com/cilame/v_jstools
安装步骤:直接下载 .zip文件然后解压,在chrome的扩展程序管理界面加载文件夹,就能安装插件了
使 ...