- 博客(31)
- 收藏
- 关注
原创 linux常用命令
Linux使用一个层次化的文件系统结构,根目录为,所有其他文件和目录都从这里开始。/bin- 基本命令的二进制文件/etc- 系统配置文件/home- 用户主目录/usr- 用户程序和数据/var- 变化的文件,如日志文件/dev- 设备文件/proc- 系统信息的虚拟文件系统。
2024-12-03 12:51:02 231
原创 Linux 基础入门笔记
以上内容涵盖了 Linux 初学者常用的基础操作,包括用户管理、系统配置、命令使用和会话管理。这些命令和工具在日常工作中非常实用,掌握它们能大大提高效率。
2024-11-30 13:40:33 689
原创 ubuntu,rocky的安装和使用远程连接工具连接服务器
下载最小版的ubuntu的iso镜像:https://mirrors.aliyun.com/ubuntu-releases/24.04/ubuntu-24.04.1-live-server-amd64.iso。
2024-11-23 19:30:13 316
原创 汇编语言中的结构体和宏
功能:可以定义包含多个结构体的数组,用于存储同类数据的集合。示例.data定义一个包含 5 个 Person 的数组.code设置第 3 个 Person 的年龄为 30结构体 (STRUCT:用于定义复杂的数据类型,组织相关的数据,提高代码可读性。宏 (MACRO:用于定义可重复使用的代码块,减少代码重复,提高效率。操作符OFFSETTYPESIZEOF等操作符辅助获取变量和类型的信息,方便内存操作。实践技巧:在实际编程中,结合使用结构体和宏,可以编写出清晰、高效、可维护的汇编代码。
2024-11-13 11:32:40 643
原创 JCC(Jump on Condition Codes)条件跳转指令笔记
JCC 指令是一组根据标志寄存器的状态进行条件跳转的指令集合。这些指令通过检查标志位的值来决定是否执行跳转。
2024-11-09 17:50:58 2636
原创 JCC 指令、CMP 和 TEST 指令及有符号与无符号操作中的标志位变化详解
标志寄存器(Flags Register),也叫状态寄存器(Status Register),是一个特殊的寄存器,它用来存储CPU的一些状态信息。这些状态信息反映了上一条指令的执行结果,比如算术运算的结果、比较操作的结果等等。它帮助程序判断程序当前的执行情况以及控制程序流。标志寄存器通常包含多个标志位(flags),每一个标志位表示一个特定的条件或状态。
2024-11-09 15:08:56 751
原创 frida-server与客户端的配置
原理:大多数app的drida检测都是安全员使用单独so文件运行的,该脚本的原理是打印安卓底层运行该app的so文件,当运行到最后一个so文件后app闪退时,说明该so文件就是用来frida检测的。因为大多数so文件都是不参与app业务的,所以删除不会有影响。
2024-10-14 08:54:28 234
原创 Pyppeteer
Pyppeteer是一个比selenium更加高效的一个爬虫模块,是基于python新特性实现的,所以它的一些执行也支持异步操作,效率相对于 Selenium 来说也提高了。
2024-08-19 12:28:56 307
原创 scrapy爬取图片和视频文件
当`FilesPipeline`处理时,它会检测是否有`file_urls`字段,如果有的话,则会对其进行文件下载。 **`Item`要包含`file_urls`和`files`两个字段**- 下载完成之后,会将结果写入item的另一字段`files`- spider提交item给FilesPipeline管道。
2024-08-18 15:55:08 320
原创 scrapy框架
scrapy是一个用于爬取网站,提取结构性数据的一个半成品框架,里面集成了许多功能。Windows系统:基本使用创建项目创建爬虫文件运行项目编写爬虫文件理解爬虫文件的不同组成部分配置文件修改:settings.py - 不遵从robots协议:ROBOTSTXT_OBEY = False - 指定输出日志的类型:LOG_LEVEL = 'ERROR' - 指定UA:USER_AGENT = 'Mozilla/5.0 (Macintosh; In
2024-08-18 11:57:35 407
原创 使用selenium实现“可见即可得”和“验证码识别”
在上面的实例中,一些交互动作都是针对某个节点执行的。比如,对于输入框,我们就调用它的输入文字和清空文字方法;对于按钮,就调用它的点击方法。其实,还有另外一些操作,它们没有特定的执行对象,比如。,这些动作用另一种方式来执行,那就是。
2024-08-15 18:09:37 153
原创 协程的作用和优点
举个例子:假设我们有从多个网页爬取数据的要求,我们设定多个线程进行去执行获取网页的操作,当其中一个网页阻塞时,可以不必一直等待,会先去执行其它操作。计算机中启动的,你确定每次CPU进行进程/线程,都会切换到网页下载的进程/线程中吗?答案是,因为这个,无法人为干涉。那么,这些网页下载任务的了。因此,可以使用来解决该问题!
2024-08-12 22:43:39 798
原创 并发、并行和同步、异步
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。在操作系统中,每启动一个应用程序其实就是OS开启了一个进程且为进程分类对应的内存/资源,应用程序的执行也就是进程在执行。狭义定义:一个正在运行的应用程序在操作系统中被视为一个进程举个例子:我们有py1文件中和py2文件,两个文件运行起来后是两个进程进程调度。
2024-08-11 12:32:12 795
原创 什么是cookie?
首先来讲,cookie是浏览器的技术,Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,可以理解为服务端给客户端的一个小甜点,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。还是那两只鱼,为了解决这个问题,他们用了一种方法储存,现在假设a(客服端),b(服务端),a发出一个请求和一个空cookie,b收到请求和cookie后向a发出响应并把将其中的信息编辑到cookie中也一并返回。
2024-08-06 10:55:18 247
原创 多态的代价
因为回收是从派生类开始的,当派生类执行析构函数后已经被回收,此时到基类的析构函数时,因为T2被回收,所以他只能执行T1中虚函数的内容。此时是先执行T的构造函数,因为T2还没创建,所以此时虚构函数依旧是//T的内容,而后是T2的内容,所以打印的顺序是。就会出现析构时只调用T析构函数的内容,则是因为析构函数是非虚的,有内存泄漏的风险,预防此事只需将他变成虚函数即可。基类和派生类是占一块空间,派生类在实例化时,是从上往下,是先实现基类的构造函数,后实现派生类的构造函数,例如。但如果动态分配内存时。
2024-03-15 18:28:05 177 1
原创 c++中的虚函数和STL
STL在我的理解中是c++在c的基础上拓展的一些模版,例如vector,list,栈,堆等等。c++相较于c语言多了三样:一. 构造函数和析构函数原先的C语言不能主动释放内存,而一旦程序过大时,就容易导致运行越来越慢,所以c++创造了构造和析构。二. 访问修饰符原先的C语言内部公开,谁都可以访问,不安全,c++多了public 、prative等等。三.模版函数减少了代码工作量。
2024-03-11 12:44:29 175 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人