- 博客(76)
- 收藏
- 关注
原创 java基础
使用向上转型的本质即使把子类变成父类了,之前做项目的了解是,当子类有处理不了的参数时,会统一回传给父类,直到父类也处理不了,再统一抛出异常?编写代码时,注意两个报错。这些关键字的组合使用可以根据具体的编程需求来控制成员的访问权限、存储方式和可修改性,以提高代码的安全性、可读性和可维护性。对象最终由构造方法所确定(即使是初始化了字段,但是构造方法在类中后执行,所以最终输出又构造方法决定)。当方法签名相同,返回值(参数类型和名称要相同)也相同时,是。在一个类中,只有参数不同,功能类似且同名的方法叫重载方法。
2024-07-28 22:48:26 925
原创 安卓逆向经典案例——XX优品(uniapp)
可以发现页面结构是纯Java发包,无JS。加入appLog,输出每次获取的sign值。有一个io文件夹,下面有dcloud。hook开启可调式权限。
2024-07-10 20:20:43 1201
原创 coze搭建工作流和Agent
bot中用到的语言模型和工作流中的语言模型的关系工作流用到的语言模型用于处理特定任务的推理模型,如任务总结。。。用于自动化的视线重复性的任务,并总结。可以比作苦逼程序员,听产品经理的。bot中的工作流是根据用户实时对话的需求,指定调用不用的工作流。可以比作产品经理,使唤苦逼程序员。在海外版的coze中已经有很多搭建好的工作流了,大家可以直接调用。
2024-07-10 00:09:48 755
原创 安卓逆向经典案例-XX谷
通过上述方法,你可以有效地查找和 hook 你感兴趣的类和方法。根据具体情况选择合适的方法和工具,可以大大提高你的逆向工程效率。如果你有任何进一步的问题或需要更多的帮助,请随时告诉我!解决方法:直接hook类hook实战//hook 类android.webkit.WebViewconsole.log("webview hook")//当出现webview hook时,说明有布尔值被hook了。
2024-06-23 23:43:11 1318
原创 安卓逆向经典案例—H5appXX运维
分析c-sign值在加密的位置下断点这里密码没有加密找到setTimeout函数,用来设置加密的函数进入函数什么是极光推送跟进去,定位到传递手机账号的位置,再跟得到c-signg.e无法跳转的原因?找到关键代码就是上述浏览器中找到的值这样就可以在java代码中还原c_sign了法一、抠代码法二、可以直接使用自吐算法(如果算法是标准算法,代码又在java中,可以直接跑自吐)这样就得到三次MD5的输入值。
2024-06-23 23:36:18 475
原创 安卓逆向案例——X酷APP逆向分析
这也是Frida自吐框架的局限性。实际的情况可能所有信息都被加密了,所以很难定位。接码后的key值中出现了等号,只有在base64加密时出现位数不足的情况,会出现等号。可以发现原始的key值经过base64编码后有经过两次url编码,才输出到请求中。这里要用magisk的插件movecertificate加载后重启手机。可以搜索到我随机输入的账号值。但是不能直接搜索到key,说明key被加密了。解码后的数据还是包含百分号。这里介绍一下两种不同的挂载证书的方法。这里有百分号可以判断是url编码。
2024-06-21 20:52:53 1035
原创 补环境——A股市场
所以我们使用 Proxy 对全局遍历window、document、navigator等常见环境检测点进行代理,拦截代理对象的读取、函数调用等操作,并通过控制台输出,这样的话我们就能够实现检测环境自吐的功能,后续我们再针对吐出来的环境统一的进行补环境,这样就会方便的多。通过打断点的方式,可以发现q的值是true,所以在浏览器环境中,它使用的是addEventListener方法,而不是attachEvent方法。一般的补环境的是通过运行程序后的undefined报错去一点一点分析,一点一点的去补一些环境.
2024-05-28 23:16:25 1167
原创 【APKtool】APKtool实现某瓣APP重签名
Java 开发的应用程序可以被打包成一个 JAR 文件,用户可以通过双击 JAR 文件来运行应用程序,前提是他们的系统上已经安装了 Java 运行时环境(JRE)。:可执行的 JAR 文件包含一个特定的清单文件,该文件指定了应用程序的入口点(main 方法所在的类),使得 JAR 可以作为独立的应用程序运行。:JAR 文件可以将 Java 类文件、相关的元数据和资源文件(如文本、图片和配置文件)封装在一个单一的文件中,便于传输和部署。:JAR 文件可以签名,以确保文件的完整性和来源安全。
2024-05-23 09:10:02 2290
原创 【PROXYCHAINS】Kali Linux 上配置NAT PROXYCHAINS保姆级教程
在博主配置kali 的时候遇到了一些小问题,主要就是连接一直报错超时。
2024-05-20 21:37:52 31145
原创 极验3滑块逆向分析
该值需要传入2个参数进行加密,生成一个大数组,第一个参数是轨迹信息,第2个参数是随机得值,加密完成返回数组。方法,然后直接传值即可,导出得地点在V函数外边,然后调用。注:这里面是对轨迹进行加密,可以使用全局导出加密轨迹。里面是被编码的,可以把W值编码,进行查找,在。往上跟堆栈,修改参数导出,然后全局调用。经过2次比对,发现有几个值在变动。可以得出后2个值是图片接口获取的。下 断点,可以分析底图还原逻辑。参数在这里生成的,可以调试结果。, 可以按照逻辑挨个处理。是方法,需要传递3个参数。
2024-05-13 23:18:02 530
原创 puppyteer
今天自己加了一个需求,尝试使用puppyteer来实现自动化录制视频,一开始的想法是先开启录屏工具,在使用puppyteer来做浏览器自动化,经过调研后发现有Puppeteer 屏幕录像机库,直接使用。综上所述,虽然使用Puppeteer自动化录屏的想法是可行的,但实现起来需要解决一些技术挑战。:有些元素可能是通过JavaScript动态添加到页面上的,如果这些脚本没有执行或执行较慢,元素也不会出现。github 地址:https://github.com/puppeteer/puppeteer。
2024-05-08 23:29:41 958
原创 JS hook cookie
这里相当于我自己创建的一个网站(本地只有HTML信息)并暴露了接口"http://127.0.0.1:5620/business-demo/invoke?在确保成员action的名字和组group的名字是一样的前提下,我得到了想要的信息。文件时,实际上是在启动Sekiro的服务端,这个服务端会监听客户端的RPC请求,并根据请求执行相应的操作。这里客户端指的是浏览器环境(因为Sekiro客户端代码被注入到浏览器中(通过浏览器扩展、油猴脚本或者直接注入到网页中),那么浏览器就充当了客户端的角色。
2024-05-07 00:43:48 448
原创 AST原理(反混淆)
当我们说 Babel 允许代码“运行在当前和旧版本的浏览器或其他环境中”时,意思是 Babel 生成的代码不仅可以在支持最新 JavaScript 特性的最新浏览器中运行,也可以在那些只支持旧 JavaScript 版本的旧浏览器中运行。 根据官网介绍,它是一个JavaScript 编译器,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容 的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。是函数调用的一部分,那么可能需要以不同的方式处理它。
2024-05-04 23:00:59 1182
原创 爬虫websocket与JS hook逆向案例:XX中心
先找到策略中心具体的数据。对应数据库中的数据看看接口是否需要被逆向点开消费者细分,可以找到人群包(人群名称)点击查看透视。
2024-04-26 00:22:43 2005 1
原创 小程序项目思路分享爬虫
这个接口比较特殊,是在华为消费者官网上找到的接口,通过这个接口。接口只返回省市下的店铺信息,而不返回区级及以下的店铺信息。所以要提取行政区划信息,要对店铺地址写正则表达式提取。这是荣耀店铺接口数据,请求参数带有省/市的经纬度信息。返回响应数据是省、市下的行政区划荣耀店铺信息。请求参数是省市名称,返回的数据是经纬度信息,这里我调用的是开源的腾讯地图api接口。方法用于构建请求的URL、Cookies、Headers和代理。写成了面向对象,有需要的可以后台call我。可见从头开始做测试的重要性,切忌想当然!
2024-04-10 21:32:44 839
原创 八股文(1)
使用命名管道时需要注意,管道中的数据是不持久的,一旦被读取,数据就会从管道中消失。另外,读取命名管道的操作是阻塞的,如果管道中没有数据,读取操作会等待直到有数据写入。命名管道不算是中间文件的原因在于它不是一个用于存储数据的常规文件,而是一种特殊类型的文件,用于进程间通信(IPC)。命名管道不算是中间文件的原因在于它不是一个用于存储数据的常规文件,而是一种特殊类型的文件,用于进程间通信(IPC)。命令本身不是重定向,而是一个常用的命令行工具,它的功能是在标准输出(通常是屏幕)上显示一行文本或变量。
2024-03-25 00:01:21 791
原创 爬虫系统介绍
分布式爬虫系统、多线程爬虫架构和异步爬虫网络架构是三种不同的爬虫实现方式,它们在资源利用、任务管理和架构设计上有所区别。下面详细解释每种架构:总结区别:选择哪种爬虫架构取决于具体的应用场景、资源限制和性能要求。在实践中,这些架构也可以相互结合使用,例如在分布式系统中的每个节点上运行多线程或异步爬虫,以进一步提升性能和效率。
2024-03-24 18:50:16 1163
原创 打印堆栈信息
打印堆栈信息的主要作用是帮助开发者理解程序的执行路径,特别是在调试和解决问题时。当程序出现异常或错误时,堆栈信息可以提供函数调用的顺序和位置,帮助开发者定位问题的源头。堆栈信息通常从最近的方法调用开始,一直追溯到最早的方法调用。每一行通常包含方法的名称、所在的文件和行号。方法的第4行被调用的。这样,我们就可以追踪到问题的源头,并理解导致问题的执行路径。方法会被用来添加一个键为"username"的键值对。的第12行抛出了异常,这个方法是被。堆栈信息是按照出栈顺序被打印的。函数就是用来打印堆栈信息的。
2024-03-12 14:35:22 264
原创 套接字(Sockets)编程——逆向分析向
在套接字编程中,我们创建套接字,这是一个支持网络请求和响应的端点。一旦连接建立,客户端发送了一条消息,服务器接收到消息后,将其回发给客户端,然后关闭连接。逆向工程师可以使用套接字编程创建客户端和服务器,以模拟和分析未知或专有的网络协议。在逆向工程中,套接字编程可以用于多种目的,尤其是在分析网络协议和通信机制时。常见的客户端-服务器模型,如Web服务器和浏览器,数据库服务器和客户端应用程序,都依赖于进程间通信。逆向工程师可以使用套接字编程来拦截网络通信,分析传输的数据,并可能修改数据包以测试应用程序的响应。
2024-02-23 01:13:50 1317
原创 并发、串行与同步、异步
如果一个程序在并发执行时,使用的数据库连接对象只有一个,这可能会引发一些问题。在多线程或多进程并发执行的情况下,多个线程或进程同时操作同一个数据库连接对象可能导致状态混乱、数据不一致等问题。数据库连接对象是用于与数据库进行交互的对象,通常有状态并且可能涉及到共享资源,比如数据库连接池。因此,为了确保在并发执行时数据库连接的安全使用,可能需要采用同步机制。这就是回调机制在爬虫中的应用,用于处理异步操作,确保在等待网络请求时不阻塞程序执行。在并发编程中,阻塞和资源竞争通常需要考虑,以确保程序的正确性和效率。
2024-02-09 22:07:19 1512
原创 爬虫代码中的mysql使用
的字典,其中包含了一些商品的信息,我们可以使用上述代码构建一个插入数据库的 SQL 语句。最终,这两部分字符串将会被用于构建插入数据库的 SQL 语句,形成类似于。通过该字典,我们构建了一个 SQL 语句,用于将商品信息插入数据库表。这样的 SQL 语句用于将数据插入数据库表中,在这个例子中,我们有一个包含商品信息的字典。最终输出构建的 SQL 语句。,这表示 SQL 语句中的值的占位符。,这表示 SQL 语句中的列。在构建的 SQL 语句中,中有 3 个键值对,那么。包含了所有字典的键,
2024-02-08 18:06:18 1215
原创 feadper框架理解
当你想要定义一个回调函数用于解析页面内容,另一个回调函数用于生成新请求时,可以通过在parse方法中实现这两个逻辑。以下是一个简单的示例:# 在这里处理解析页面的逻辑# 解析页面内容,假设从中获取到新的链接# 生成新请求# 在这里处理解析详细页面的逻辑在上述代码中,parse方法用于解析页面内容,并从中获取新的链接。然后,通过生成新的请求,并指定callback为。方法用于处理新请求的页面内容。通过这种方式,你可以将解析页面和生成新请求的逻辑分别放在两个不同的回调函数中。
2024-01-22 13:54:27 1215
原创 Scrapy框架自学
线程爬虫,如果都放在同一列表中,会有竞争。拿请求的代码是加锁,解锁。在网络框架中,异步编程常用于需要处理大量并发请求的场景,比如Web服务器处理大量同时到达的HTTP请求时,异步方式能够更高效地利用系统资源,提高系统的吞吐量和响应速度。在网络框架中,同步(Synchronous)和异步(Asynchronous)是指处理任务和响应的两种不同方式。同步:发送一个请求,等待返回,然后再发送下一个请求。异步:发送一个请求,不等待返回,随时可以再发送下一个请求。自我理解:异步不一定是并发,但并发一定是异步。
2024-01-11 20:47:17 975
原创 纠正性反馈回路
为了改变这种情况,应该停止自责,肯定自己,从负面情绪中解脱出来,形成良性的纠正反馈循环,让自己变得越来越好[[2]](https://zhuanlan.zhihu.com/p/570084290)。通过自律和自省,可以走在正确的道路上,获得自由和成功[[2]](https://zhuanlan.zhihu.com/p/570084290)。即使身边没有敢于对你说真话、纠正你错误的朋友,你也能够自我纠正、不断改进[[2]](https://zhuanlan.zhihu.com/p/570084290)。
2023-12-06 20:02:29 1220
原创 信息论与编码——信道编码
最小距离译码准则是一种常用的纠错码译码方法,用于在接收到含有错误的编码信息时,通过计算与已知编码序列之间的距离来判断最有可能的原始信息。该准则的基本思想是选择与接收到的编码序列距离最近的已知编码序列作为译码结果。距离通常使用汉明距离来度量,汉明距离是指两个等长字符串之间相应位置上不同字符的个数。下面通过一个简单的例子来说明最小距离译码准则的应用:假设发送方使用一个二进制纠错码,其中每个信息位通过一个3位的编码进行传输。已知的编码序列如下:00 -> 00001 -> 011。
2023-11-18 21:35:00 1182
原创 面经第5天
我了解MySQL的日志类型,包括binlog、redo log和undo log,它们各自有不同的作用和特点。这些日志在MySQL中起到不同的作用,以确保数据的完整性和一致性。它们协同工作以应对数据库崩溃、宕机或其他异常情况。
2023-11-09 00:55:04 126
原创 软考冲刺复习
BEGINEND;: 这是 SQL 创建函数的开始语句。: 函数的名称,用于在后续查询中调用函数。: 函数的参数列表,包括参数名称和数据类型。函数可以接受零个或多个参数。: 定义函数的返回类型,即函数执行后返回的数据类型。: 可选项,指定函数的编程语言,通常可以是 SQL 或特定的编程语言名称。: 可选项,指定函数是否是确定性的(对于给定的输入,总是产生相同的输出)或非确定性的。: 可选项,指定函数对 SQL 数据的访问方式,包括是否包含 SQL 语句、是否读取 SQL 数据、是否修改 SQL 数据等。
2023-11-04 21:57:16 238
原创 面经第三天(补)、第四天
内部类在 Java 中有多种类型,每种类型有不同的应用场景。使用迭代器进行遍历输出具有以下好处相比使用普通的 for 循环:封装性:迭代器封装了容器的遍历逻辑,用户不需要了解容器内部的数据结构和索引,提供了更高的抽象层次。?统一的接口:迭代器为不同类型的容器提供了统一的遍历接口,这意味着可以使用相同的方式来访问不同类型的容器(例如,数组、链表、集合等)。?安全性:使用迭代器遍历时,不会出现越界错误,因为迭代器内部已经处理了边界条件,从而避免了可能的数组越界或集合溢出。???
2023-11-02 00:30:20 163
原创 面向对象设计——装饰模式
装饰模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地为对象添加额外的功能,而不需要修改其源代码。在这个示例中,装饰模式允许我们动态地为不同种类的咖啡添加不同的配料,而不需要创建大量的组合类。装饰模式的核心思想是以透明的方式扩展对象的功能,同时保持其接口不变。:装饰器是一个抽象类,它实现了组件接口,并包含一个对组件对象的引用。:这是实现装饰器接口的具体类,它添加了具体的功能或状态到组件。:这是实现组件接口的具体类,它是装饰模式中的原始对象,可以被装饰器包装。
2023-11-02 00:04:46 261
原创 面经——第二天
Java 反射机制是指在运⾏时动态地获取类的信息、创建对象以及调⽤对象的属性和⽅法的机制。Java 反射机制提供了运⾏时检查 Java 类型信息的能⼒,让 Java 程序可以通过程序获取其本身的信息。Java 反射机制的优点:在Java中,反射机制的核心是类,它代表了Java中的类。通过Class类,你可以动态获取类的信息、创建对象和调用类的属性和方法。// 获取Class对象,这里我们获取MyClass类的Class对象Class
2023-10-31 00:29:54 513
原创 面经——java后端第一天
C++ 和 Java 是两种编程语言,它们之间有很多区别,主要包括以下几个方面:总之,C++ 和 Java 在语言设计、应用场景和特性上有很多不同之处,开发人员在选择语言时需要考虑项目的具体需求和优劣势。
2023-10-30 00:01:31 740 3
原创 计算机网络
STA代表"Station",这是无线网络中的终端设备,如笔记本电脑、智能手机或其他连接到Wi-Fi网络的设备。:AP代表"Access Point",是一种设备,它提供了连接到无线网络的设备的接入点。AP充当了Wi-Fi网络中的"无线路由器",它允许STA连接到无线网络,并通常与有线网络连接,起到桥接的作用。:BSS代表"Basic Service Set",是Wi-Fi网络中的基本服务集,通常由一个AP和与其关联的STA组成。BSS是Wi-Fi网络中的基本构建块,其中STA与AP通信。
2023-10-27 16:22:14 768
原创 算法——贪心算法
贪心算法(Greedy Algorithm)是一种算法设计策略,通常用于解决组合优化问题,其核心思想是在每一步都选择当前状态下最优的解,而不考虑之后的步骤。贪心算法在每一步都做出局部最优选择,期望通过一系列局部最优选择达到全局最优解。然而,由于贪心算法不进行回溯,它不一定能够找到问题的全局最优解,有时只能找到一个近似解。应用场景:贪心算法适用于一系列问题,特别是那些具有贪婪选择性质的问题,即问题的最优解可以通过一系列局部最优选择得到。
2023-10-26 22:38:30 372
原创 算法——回溯法
回溯算法是一种重要的解决组合优化问题的算法,它通过尝试不同的可能性来找到问题的解。回溯算法通常用于那些需要探索多个可能性并找到最优解的问题,特别是在问题的解空间非常大或无法通过传统的计算方法进行求解时。从问题的一个初始解出发,逐步建立问题的解空间树,通过深度优先搜索或宽度优先搜索策略,在搜索的过程中采用剪枝操作,舍弃一些不可能产生最优解的子树,最终找到问题的解。:回溯算法常用于解决组合优化问题,如旅行商问题(TSP)、0-1背包问题、排列组合等。在这些问题中,需要找到一组组合,以最小化或最大化某种目标。
2023-10-26 22:36:30 176
原创 数据结构与算法——分治法
分治算法(Divide and Conquer Algorithm)是一种算法设计策略,它将一个大问题分割成多个相同或相似的子问题,然后递归地解决这些子问题,最后将它们的解合并在一起,得到原始问题的解。分治算法通常包含三个关键步骤:分、治、合。分治算法在许多计算机科学和数学问题中都有广泛的应用,特别是在需要解决大规模问题时。分治算法在处理大规模问题时通常表现出色,因为它可以有效地将问题分解为多个独立的子问题,从而减小了问题的规模,提高了算法的效率。这使得分治算法在计算机科学领域中具有重要的地位。
2023-10-26 22:14:53 491
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人