自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 JS逆向之补环境学习笔记(较杂)

JS逆向之补环境下载使用vm2检测环境的一些点参考下载使用vm2vm2可以理解为一个纯净的脱离Node的V8环境,相当于重新启动了一个进程,然后在进程中不允许加载Node中的一些东西,禁止了一些Node中的特性,是一个相当于V8的沙箱环境。npm install vm2检测环境的一些点node环境中有process,而V8环境或者浏览器环境中没有process。任何canvas指纹都存在一定得误杀率,所以厂商不会去对canvas指纹做强校验,因为不同浏览器canvas底层实现代码不同;其次即

2023-10-09 23:09:40 3678

原创 conda常用操作

【代码】conda常用操作。

2023-07-25 13:38:52 178

原创 提交代码到github时使用代理

通过上面的步骤,就可以使用 VPN 访问 GitHub 并 Clone 仓库了。需要注意的是,使用代理可能会影响 Git 的性能,因此建议在完成操作后及时取消代理设置。在使用 VPN 访问 GitHub 时,可以将 Git 的代理设置为 VPN 的代理,以便在 Git clone 时通过 VPN 访问 GitHub。分别为 VPN 的代理地址和端口号。命令可以取消代理设置。

2023-07-11 15:22:56 3063

原创 NanoHttp的使用入门

NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小。可轻松定制临时文件使用和线程模型。

2022-09-10 23:09:25 1849 1

原创 golang学习笔记

golang学习

2022-06-30 14:56:12 1249

原创 Scrapy的使用

Scrapy的使用一. Scrapy的简介与安装(1) Mac或Linux的安装(2) Windows安装(3) Scrapy框架简介(4) 大致流程二. 创建项目三. 运行项目(1)命令行运行(2)创建py文件运行四. 设置settings.py五. Scrapy解析数据六. 存储数据(1)基于终端指令进行持久化存储(2)基于管道进行持久化存储(重点)七. 手动发送请求八. 请求传参参考一. Scrapy的简介与安装(1) Mac或Linux的安装直接pip install scrapy(2) W

2022-05-20 18:03:49 1787

原创 Android网络请求库的使用(okhttp、retrofit、rxjava)

首先新建项目,添加网络权限,这个权限不需要⽤户授权, 默认申请就给, 不添加的话会报错:然后在gradle中添加一下依赖:dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.1' implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0

2022-05-12 17:49:00 2600 2

原创 JS逆向需要掌握的JS基础知识与前端知识

本文将会把我平时在JS逆向中遇到的一些JS基础知识和遇到的问题写在这里。JS逆向需要掌握JS基础知识webpackJS逆向中常见的window.webpackJsonp分析基础语法声明时用"var"与不用"var"的区别变量提升赋值操作webpackJS逆向中常见的window.webpackJsonp分析文章链接:https://blog.csdn.net/Xzike/article/details/123874734基础语法声明时用"var"与不用"var"的区别参考文章链接:https

2022-05-07 15:49:21 3282 1

原创 安卓逆向基础知识:Java中的反射调用

Class类是反射的基石,Class是一个类,封装了当前对象所对应类的信息。此处新建一个安卓项目,新建一个MysteryBox类:MysteryBox类代码如下:package com.example.studyfour;import java.util.Random;public class MysteryBox { private final String content; private boolean isOpened; public final int pri

2022-05-02 23:01:13 1750

原创 Android Studio安装及使⽤,开发HelloWorld级别功能

1.安装Android Studio下载地址:https://developer.android.com/studio/archive之后正常下载、默认设置即可。在首次启动Android Studio的时候,可能会出现unable to access android sdk add-on list,参考这篇文章即可:https://blog.csdn.net/yang5726685/article/details/52034220出现这个界面,表明安装完成了:2.初步使用AndroidStu

2022-05-01 18:07:02 808

原创 javascript进行hex、base64、bytes[]、string的互转

文中的js代码转自:https://www.cnblogs.com/askta0/p/12800030.html#/c/subject/p/12800030.html在进行Frida中RPC调用的时候,遇到TypeError: Object of type ‘bytes’ is not JSON serializable,出现该问题的原因在于json.dumps函数发现字典里面有bytes类型的数据,因此无法编码。首先尝试按照这篇文章对python中json模块的源码进行了修改:https://b

2022-04-27 14:19:34 7197 1

原创 Frida使用案例之响应数据有加密

首先看看需要研究的包:这个APP有壳,经脱壳后有四个dex文件,我们在四个dex文件里搜索一下url中的关键字,看看能不能搜索到有用的信息,此处我搜索sendcode,然后再通过右键查找用例的办法找到了这个类:但是这个类下面有很多方法,我要挨个hook的话工作量较大,这里我们可以采用这样的办法先打印出这个类下面所有的方法看看:Java.perform( function(){ console.log('enter Frida!') var netcontent

2022-04-01 22:30:38 781

原创 JS逆向中常见的window.webpackJsonp分析

参考文章:https://blog.csdn.net/yyone123/article/details/107914309在遇到webpack时,常见的一种形式是:!function(e) { t = {}; function n(r) { if (t[r]) return t[r].exports; var i = t[r] = { exports: {} }; return e[r].call(

2022-03-31 16:27:43 21304 4

原创 python中的类装饰器

装饰器本身既可以是函数也可以是类,装饰的对象同样可以是函数也可以是类。例1:import time class Timer: def __init__(self,func) -> None: self.func = func def __call__(self, *args, **kwargs): start = time.time() ret = self.func(*args, **kwargs) prin

2022-03-30 21:53:49 6263

原创 使用Frida过程中,打印[object object]

方法一:先确认object是什么类型(比如要打印p) 先console.log(p.$className) 查看p是什么数据类型Java.cast 把p强转为对应类型调用该类对应的输出方法,通常有一个toString()方法方法二:使用js里的JSON类,尝试 console.log(JSON.stringify(p)。可能打印不出来字符串,一般能打印出p的字节数组。(可以用你的数据和真实数据的对比)bytes array 是objectString 和 bytes array可以相互转

2022-03-29 14:15:04 8852 1

原创 记录windows下用docker部署Crawlab,安装依赖包

1.首先可以用docker ps -a查看所有容器的id2.使用docker exec -it 容器名/容器ID /bin/bash进入容器中可以切换目录,比如:3.此时可以使用pip命令下载第三方库:4.使用docker cp 本地路径 容器ID:容器路径把自己写的包放到路径里面:5.这里我使用了vscode里的Docker插件,可以看到pandas已经在目录下了!...

2022-03-28 15:57:36 2959

原创 js逆向中常用的加密算法的python实现

js逆向中常用的加密算法的python实现SHA256base64SHA256import hashlibstr_input = '123456'.encode('utf-8')str_out = hashlib.sha256(str_input).hexdigest()base64import base64str_input = '123456'.encode('utf-8')str_out = base64.b64encode(str_input).decode(encoding =

2022-03-24 14:53:32 2754

原创 python并发编程:协程asyncio、多线程threading、多进程multiprocessing

python中的asyncioTask对象Task对象tasks用于并发调度协程,通过asyncio.creat_task(协程对象)的方式可以创建Task对象,这样可以让协程加入事件循环中等待被调度执行。除了使用asyncio.creat_task()以外,还可以用低层级的loop.creat_task()或asyncio.ensure_future()。注意:asyncio.creat_task()在python3.7之后加入。在python3.7之前可以改用低层级的asyncio.ensure_

2022-03-17 22:48:01 5928 1

原创 Frida定位和还原简单参数

分析其signature参数的生成逻辑:首先使用jadx搜索大法,此处先搜索signature,发现有太多搜索结果:考虑到生成的逻辑,有可能是通过比如"signature=加密参数"这样的方式来赋值的,那么我们尝试搜索一下**"signature**,发现定位到了关键代码:...

2022-03-13 22:03:07 1474

原创 Frida通过APK的签名校验

APP简单启动顺序点击APP启动执行Application(attach, onCreate方法)执行开屏界面Activity执行Main Activity(onCreate方法)启动成功简单签名校验签名校验一般在APP启动阶段几个安卓中常见的类:Context类:android.content.Context保存应用环境信息PackageManager类: 获取安卓系统信息和APP的信息Signature类:https://developer.android.google.cn/

2022-03-08 14:29:26 4181

原创 frida配置与安装

Frida的组成部分:Frida-server: 运行在手机上。安卓6 使用frida-server-12.8.10 ,安卓8以上手机使用较新的frida-server版本Frida :Python模块Frida-tools:提供cli工具命令 跟Frida-server交互(frida-ps frida-trace)1.下载python的frida包参考文章:https://www.jianshu.com/p/f91d92ce2b23安装frida一直报错,我根据文章里的做法,先pip3 i

2022-02-24 16:35:51 7757 1

原创 AST学习笔记

AST学习笔记基础部分1.evaluate()的作用基础部分1.evaluate()的作用针对作用域和引用,直接依据引用来计算出执行结果。var a = 123 + '2sdasda31231';var b = a; ↓var a = "1232sdasda31231";var b = "1232sdasda31231";visitor = { "BinaryExpression|Identifier"(path){ const {confiden

2022-02-24 15:26:33 1288

原创 猿人学第一届比赛平台刷题记录

yrx比赛平台刷题记录15.备周则意怠,常见则不疑(wasm)15.备周则意怠,常见则不疑(wasm)打开F12,观察找到数据所在的包,发现有两个参数,一个是加密的m值,另一个是页码page值。目标就是逆向m值。很容易发现m加密的位置:此时发现q函数是native code,是通过wasm文件定义的。于是接下来的流程就是调用第三方python库pywasm来调用encode这个函数了:import mathimport randomimport timeimport pywasmi

2021-12-28 13:59:37 1278

原创 python使用requests.Session()之踩坑记录

在做glidesky第二题的时候需要使用模拟登录,刚开始尝试如下:def login(s): login_url = 'http://www.glidedsky.com/login' res = s.get(url = login_url) _token = re.findall('<meta name="csrf-token" content="(.*?)">',res.text)[0] data = {'_token': _token,'email': '账号','password

2021-10-10 20:31:26 1021

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除