草庐IT

4.8 x64dbg 学会扫描应用堆栈

堆栈是计算机中的两种重要数据结构堆(Heap)和栈(Stack)它们在计算机程序中起着关键作用,在内存中堆区(用于动态内存分配)和栈区(用于存储函数调用、局部变量等临时数据),进程在运行时会使用堆栈进行参数传递,这些参数包括局部变量,临时空间以及函数切换时所需要的栈帧等。栈(Stack)是一种遵循后进先出(LIFO)原则的线性数据结构。它主要用于存储和管理程序中的临时数据,如函数调用和局部变量。栈的主要操作包括压栈(添加元素)和弹栈(移除元素)。堆(Heap)是一种树形数据结构,通常用于实现优先队列。堆中的每个节点都有一个键值(key),并满足特定性质。最常见的堆类型是二叉堆(包括最大堆和最小

聊聊「画图」和工具,你学会了吗?

01每次遇到这个问题,脑回路都有一丝丝欢乐的氛围;并不是问题奇怪;而是自己对于画图这件事上并不专业,就算是涉及工作上的制图,也没特地去看过任何相关的语法或者规则;事实上;对于画图这个操作,个人纯属随意发挥,工具还反复横跳;很多工作文档中的配图,混合乱搭的风格特别明显;所以,关于画图和工具选择;两句话能说明白;【1】示意清楚的都是「好图」;【2】免费,够用,支持云存储,都是好的画图「工具」;至于其它方面,没留意过;就研发这个场景而言;画图的根本目的并不在于图自身的美观与否,而是在于想表达的流程和逻辑是否清楚;最重要的一点;很多场景用一张图就能一目了然,直接省去大量枯燥的文字描述,对效率和体验都是

浅谈无效化一个空窗口的后果,你学会了吗?

有时候,你可能会注意到这样一个现象:桌面上的所有窗口都刷新了自身并产生了闪烁。导致这个现象的原因之一是一个所谓的空句柄窗口Bug。如果你研究过Win32SDK编程,则你应该比较熟悉这个函数:InvalidateRect。调用这个函数可以通知窗口管理器:某个窗口的内容发生了变化,需要重新绘制了。在这个函数中,你还可以传入一个矩形坐标来表明你希望将窗口上的哪个区域标记为无效。这通常是在窗口中渲染的数据的状态发生了变化,并且你希望窗口使用新数据重新绘制时完成的。但是,如果你将NULL作为窗口句柄传递给InvalidateRect函数,则将其视为与早期版本的Windows兼容的特殊情况:它使桌面上的所

60题学会动态规划系列:动态规划算法第四讲

买卖股票相关的动态规划题目文章目录1.买卖股票的最佳时机含冷冻期2.买卖股票的最佳时期含⼿续费3.买卖股票的最佳时机III4.买卖股票的最佳时机IV1.最佳买卖股票时机含冷冻期力扣链接:力扣给定一个整数数组prices,其中第  prices[i] 表示第 i 天的股票价格。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票(即冷冻期为1天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 首先我们分析一下题目,题目中的要点是卖出股票后第二天不能买入,并且每次买新的股票前都要出售掉原先的

零基础学会用Airtest-Selenium对Firefox进行自动化测试

1.前言本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!!2.如何使用AirtestIDE驱动Firefox浏览器对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,关于如何驱动chrome浏览器,之前我们的推文已经做了很多详细介绍:Selenium快速上手实战|上篇Selenium快速上手实战|下篇今天我们重点聊一下,如何使用AirtestIDE驱动Firefox浏览器。1)基础知识AirtestID

2023年了,还是没学会内卷....

先做个自我介绍:我,普本,通信工程专业,现在飞猪干软件测试,工作时长两年半。回望疫情纪元,正好是实习+毕业这三年。要说倒霉也是真倒霉,互联网浪潮第三波尾巴也没抓住,狗屁造富神话,经济又下行,各行业都收缩,薪资开的十分一般。但要说特倒霉倒也不算,三年没阳过,家人都健康。工作后也能在第二年跳进自己大学里就想进的所谓大公司,也能有幸在大玻璃笼子里当圈养型社畜。并且同年文体两开花,还在箭馆认识了现在的女朋友。"你要我透支自己的美好生活,全砸到工作上还不捅我两刀!"----在上一家公司,凌晨2点还在加班的我如是想到。回过头想想,其实上家公司也不差。软件测试技术栈很新。少壮派技术主管对团队技术很有想法,跟

一篇文章学会YooAsset资源热更新的初始化

零、导入YooAsset0.注意结合官方文档一起看,他写的很清晰官方文档1.UPM导入在ProjectSetting里找到这个,这么填package.openupm.cnhttps://package.openupm.cncom.tuyoogame.yooasset然后在PackageManager里,选择MyRegistry,导入YooAsset一、编辑器0.创建YooAsset设置文件在使用这些东西之前,我们需要在Project面板右键,选择YooAsset/CreateSetting创建这个文件然后MainfestFileName就是我们的资源清单文件名,(不改也没事,不影响使用,只是名

学会使用Java Web实现:用户登录功能(JSP+Servlet方式)

一、实现思路登录页面login.jsp,输入用户名和密码后,跳转到登录处理程序LoginServlet进行业务逻辑处理,登录成功,跳转到登录成功页面success.jsp,否则跳转到登录失败页面failure.jsp。二、实现步骤1、新建Web项目创建JavaEnterprise项目,添加WebApplication功能设置项目名与保存位置单击【Finish】按钮在项目结构窗口里修改Artifact名- LoginDemo02 编辑服务器配置,重新部署项目2、创建登录页面登录页面- login.jsp 3、创建登录处理程序创建net.huawei.serlvet包,在包里创建LoginServ

Python新手入门必须学会的技巧:pycharm中配置Python解释器(2022最新)

有很多小伙伴,在安装模块时成功了,但是在pycharm导入模块的时候报错了,或者运行没有结果,基本上都是这个问题。我下午在群里刚解决了一个这样的问题,她说不管什么代码都运行没结果,helloworld都打印不出来结果,也不报错,在群里问了半天,还好我看到了,不然他的纠结一天。1.打开设置依次点击file-settings打开设置2.点击到project>>Pythoninterpreter依次点击project:Pythonproject→Pythoninterpreter3.选择环境依次选择,点击设置。左边第一个是选择Python第二个是选择anaconda右边第一个是从pycharm里面下

4种方法带你学会Ubuntu软件的安装

前言    在嵌入式的开发中,不会用在linux中开发,linux只是起到一个软件编译的效果,但是在其她领域的开发中,Ubuntu的软件安装还是很有必要的。        在Linux的早期,安装软件是一件痛苦的事。幸好Linux开发人员已经通过把软件打包成更易于安装的预编译包,我们的生活因此舒坦了一些。但你多少还是得花点功夫安装软件包,尤其是准备从命令行下安装的时候。App Store    打开Ubuntu软件,在其应用商店进行下载安装,因为下载需要联网,比较慢。 使用APT安装   使用 APT包管理工具,APT可以自动下载,配置,安装。使用APT安装软件需要sudo.也就是root权限