4.4 x64dbg 绕过反调试保护机制

在Windows平台下,应用程序为了保护自己不被调试器调试会通过各种方法限制进程调试自身,通常此类反调试技术会限制我们对其进行软件逆向与漏洞分析,我们以第一种`IsDebuggerPresent`反调试为例,该函数用于检查当前程序是否在调试器的环境下运行。函数返回一个布尔值,如果当前程序正在被调试,则返回True,否则返回False。函数通过检查特定的内存地址来判断是否有调试器在运行。具体来说,该

5.2 基于ROP漏洞挖掘与利用

通常情况下栈溢出可能造成的后果有两种,一类是本地提权另一类则是远程执行任意命令,通常C/C++并没有提供智能化检查用户输入是否合法的功能,同时程序编写人员在编写代码时也很难始终检查栈是否会发生溢出,这就给恶意代码的溢出提供了的条件,利用溢出攻击者可以控制程序的执行流,从而控制程序的执行过程并实施恶意行为,本章内容笔者通过自行编写了一个基于网络的FTP服务器,并特意布置了特定的漏洞,通过本章的学习,

8.9 RDTSC时钟检测反调试

RDTSC时钟检测同样可实现反调试检测,使用时钟检测方法是利用`rdtsc`汇编指令,它返回至系统重新启动以来的时钟数,并且将其作为一个64位的值存入`EDX:EAX`寄存器中,通过运行两次`rdstc`指令,然后计算出他们之间的差值,即可判定对方是否在调试我们的程序。

前端使用工具规范commit信息

前言 通过工具规范git提交信息也是工程化的一部分,在前端领域有一些工具为我们提供了相关功能,在这里做一下使用总结。 commitlint commitlint是什么? 就像eslint用来检查js代码是否标准,commitlint用来检查提交信息是否满足固定格式的工具。 同样,commitlint

如何实现 Java SpringBoot 自动验证入参数据的有效性

Java SpringBoot 通过javax.validation.constraints下的注解,实现入参数据自动验证 如果碰到 `@NotEmpty` 否则不生效,注意看下 `@RequestBody` 前面是否加上了`@Valid`

Elasticsearch查询及聚合类DSL语句宝典

随着使用es场景的增多,工作当中避免不了去使用es进行数据的存储,在数据存储到es当中以后就需要使用DSL语句进行数据的查询、聚合等操作,DSL对SE的意义就像SQL对MySQL一样,学会如何编写查询语句决定了后期是否能完全驾驭ES,所以至关重要,本专题主要是分享常用的DSL语句,拿来即用。

一种面向业务配置基于JSF广播定时生效的工具

作者:京东物流 王北永 姚再毅 李振 1 背景 目前,ducc实现了实时近乎所有配置动态生效的场景,但是配置是否实时生效,不能直观展示每个机器上jvm内对象对应的参数是否已变更为准确的值,大部分时候需要查看日志确认是否生效。 2 技术依赖 1)Jsf:京东RPC框架,用作机器之间的通讯工具 2)re

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(8) -- 使用Converter类实现内容的转义处理

在我们WPF应用端的时候,和WInform开发或者Vue前端开发一样,有时候也需要对内容进行转义处理,如把一些0,1数值转换为具体含义的文本信息,或者把一些布尔变量转换为是否等,都是常见的转换处理,本篇随笔介绍在WPF应用端对内容使用Converter类实现内容的转义处理的操作。

GeoServer发布影像WMTS服务

WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。 WMTS: 切片地图web服务(OpenGIS Web Map Tile Service) 使用GeoServer发布WMTS服务步骤: 1、查看Gridsets中是否有满足需求的切片策略,若无,则新建切片策略: 新建4490的

带宽优化新思路:RoCE网卡聚合实现X2增长

本文分享自华为云社区《2个RoCE网卡Bond聚合,实现带宽X2》,作者: tsjsdbd 。 我们知道操作系统里面,可以将2个实际的物理网卡,合体形成一个“逻辑网卡”,从而达到如主备/提升带宽等目的。但是RoCE网卡,是否也跟普通网卡一样,支持Bond能力呢?答案是的,RoCE也可以组Bond,只

vue3 + mark.js | 实现文字标注功能

页面效果 具体实现 新增 1、监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。 2、通过 选中的文字长度是否大于0或window.getSelection().isCollapsed (返回一个布尔值用于描述选区的起始点和终止点是否位于

pbjs 无法编码 bytes 类型数据问题的解决方案

一段包含 bytes 类型的 protobuf 二进制数据,经过 pbjs 解码生成的 json 文件,再传递给 pbjs 编码后生成的二进制数据和原始数据差异巨大,经过一番探究,发现居然是 pbjs 的一个 bug,快来看看你是否踩过这个坑吧~

基于SqlSugar的开发框架循序渐进介绍(17)-- 基于CSRedis实现缓存的处理

在一个应用系统的开发框架中,往往很多地方需要用到缓存的处理,有些地方是为了便于记录用户的数据,有些地方是为了提高系统的响应速度,如有时候我们在发送一个短信验证码的时候,可以在缓存中设置几分钟的过期时间,这样验证短信验证码的时候,就会自动判断是否过期了。本篇随笔结合CSRedis的使用,介绍如何实现缓存的初始化及使用的处理。

在DevExpress中使用BandedGridView表格实现多行表头的处理

在之前较早随笔中介绍过实现多行表头的处理,通过手工创建字段以及映射数据源字段属性的方式实现,有些客户反映是否可以通过代码方式更方便的创建对应的处理操作,因此本篇随笔继续探讨这个多行表头的处理的操作,使用代码的方式结合扩展函数处理,快速的实现GridControl的多行表头的处理操作。

CompletableFuture 使用总结

转载请注明出处: 1.Future使用对比 Future表示一个异步计算的结果。它提供了isDone()来检测计算是否已经完成,并且在计算结束后,可以通过get()方法来获取计算结果。在异步计算中,Future确实是个非常优秀的接口。但是,它的本身也确实存在着许多限制: 并发执行多任务:Future

Redis set数据类型命令使用及应用场景使用总结

转载请注明出处: 目录 1.sadd 集合添加元素 2.srem移除元素 3.smembers 获取key的所有元素 4.scard 获取key的个数 5.sismember 判断member元素是否存在集合key中 6.srandmember key count 从集合key中随机选出count个

vue 中安装并使用echart

本文为博主原创,转载请注明出处: 1.安装echart 依赖: 安装命令: npm install echarts --save 在vscode 的终端窗口进行执行,如图所示: 执行完之后,查看 项目中的echart 版本依赖是否添加成功: package-lock.json 中有具体的echart

ajax面试题总结

转载请注明出处: 1.ajax异步和同步的区别 Ajax是一种基于JavaScript语言和XMLHttpRequest对象的异步数据传输技术,通过它可以使不用刷新整个页面的情况下,对页面进行部分更新。 同步和异步是指客户端发送请求时,主线程是否会阻塞等待服务器的响应返回。 同步请求在发送请求后,客

ajax的statusText在http1.1和http2中的不同

问题 在服务端支持协议从http1.1升级到http2的时候,项目中正常的请求流程出现了错误,经排查是ajax封装代码使用xmlHttpRequest的statusText属性判断是否正常返回,进而导致错误,那么statusText属性在不同协议间发生了什么变化呢? 通过MDN文档(英文版本)查询到

2023Java面试学习网站推荐

本文给大家推荐博主收藏的6个程序员面试学习站点,按照项目简介、网站截图、是否收费供大家参考。 # 1. JavaGuide 网站地址:https://javaguide.cn 项目简介:「Java学习 + 面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 J