x84

mysql 存储 emoji报错( Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F)的解决方案

久未见 提交于 2021-02-03 19:37:17
mysql 存储 emoji报错( Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F)的解决方案 参考文章: (1)mysql 存储 emoji报错( Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F)的解决方案 (2)https://www.cnblogs.com/jinTaylor/p/4607505.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4943996

内存保护机制及绕过方案——通过覆盖虚函数表绕过/GS机制

邮差的信 提交于 2021-02-02 15:35:18
1 GS内存保护机制 1.1 GS工作原理 栈中的守护天使--GS,亦称作Stack Canary / Cookie,从VS2003起开始启用(也就说,GS机制是由编译器决定的,跟操作系统无关)。 GS机制分三个步骤:计算随机种子 --> canary写入栈帧 --> GS校验。 [1]程序启动时,读取 .data 的第一个 DWORD 作为基数,然后和各种元素(时间戳,进程ID,线程ID,计数器等等)进行XOR加密 [2]然后将加密后的种子再次写入 .data 的第一个 DWORD [3]函数在执行前,把加密后的种子取出,与当前 esp 进行异或计算,结果存入EBP的前面 [4]函数主体正常执行。 [5]函数返回前(retn前一点),把cookie取出与esp异或计算后,调用security_check_cookie函数进行检查,与.data节里的种子进行比较,如果校验通过,则返回原函数继续执行;如果校验失败,则程序终止。 图解: 1.2 变量重排技术 如图1.1所示,在缓冲区域cookie之间还有一些空隙,这是因为在旧版本(VS2005之前)的编译器里,局部变量是随机摆放的(指针,int,字符串位置随机) 所以这里就还存在一丝安全隐患->_->那就是Buff可能在不压过Cookie的情况下覆盖一些局部变量,所以,后期的编译器就推出了-- 变量重排技术。 如图1-2所示 图 1

执行方式免杀之内联汇编(FUD101连载三)

风格不统一 提交于 2021-01-23 05:21:30
声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。 前言 针对本篇及后续文章中用到的部分技术,我已经写好了相关代码,用于快速生成免杀的可执行程序,源代码放在了(github)[https://github.com/1y0n/AV_Evasion_Tool]上,也可以直接下载编译好的(程序)[https://github.com/1y0n/AV_Evasion_Tool/releases] 工具界面如下: 效果如下: 学习免杀,汇编是一个永远绕不开的话题。这一章节,我们将学习汇编一些常见的指令,通过这些指令执行我们的 shellcode 可以取得很好的免杀效果。当然,我们学习的仅是汇编中比较基础的部分,更多的内容需要自己不断地学习研究。 No.1 基础知识 寄存器 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。32位通用寄存器有 8 个: 常见操作码 花指令 花指令指一些没有实际意义的指令,执行或不执行它们对最后的结果不会带来影响,但可以增加反汇编分析的难度,甚至会干扰反汇编程序的正常工作

FUD101(连载): 一、shellcode免杀

二次信任 提交于 2021-01-23 04:57:11
No.1 声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。 No.2 前言 针对本篇及后续文章中用到的部分技术,我已经写好了相关代码,用于快速生成免杀的可执行程序,源代码放在了(github)[https://github.com/1y0n/AV_Evasion_Tool]上,也可以直接下载编译好的(程序)[https://github.com/1y0n/AV_Evasion_Tool/releases] 工具界面如下: 效果如下: 目前,针对 shellcode 的免杀,在不讨论自己编写 shellcode,而是使用现成的 shellcode(msfvenom、cobaltstrike等)的情况下,主要有两种方式: 1、分离免杀 分离免杀主要是将 shellcode 和 loader 彻底分开,比如可以将 shellcode 藏在其他文件中、放在网络上等等。 2、加密混淆 加密混淆指将 shellcode 进行一定变形处理后,同 loader 放在一起,打包为一个完整独立的可执行文件。

自制操作系统

牧云@^-^@ 提交于 2020-11-30 05:52:35
自制操作系统Antz day09——实现内核 (下) 实现图形化界面 https://www.cnblogs.com/LexMoon/p/antz09.html Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址: https://www.cnblogs.com/LexMoon/category/1267413.html Github项目地址: https://github.com/CasterWx/AntzOS   在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,并且编写了我们自己的内核程序,接下来我们要完成界面的图形化,在显示屏中显示鼠标字符桌面,并显示一个终端界面。   效果如下:      现在我们已经简单实现了半终端半桌面的显示,虽然说非常Low,但也是Antz的一大步了。 封装函数   在前几天我们已经说明了屏幕显示的原理,也就是在显存固定位置写入数据,这对于显卡来说就是像素点。   如果屏幕显示原理不清楚的可以参考第三天的: http://www.cnblogs.com/LexMoon/p/antz03.html   为了方便实现图像化,我将显卡写入的代码使用C语言封装成了函数,颜色定义为数组

第一期_储存控制器与SDRAM

耗尽温柔 提交于 2020-11-18 20:06:23
内存接口概念 首先来分析下操作GPIO控制器和操作UART控制器两者的区别 如图是S3C2440是个片上系统,有GPIO控制器(接有GPIO管脚),有串口控制器 (接有TXD RXD引脚) 配置GPIO控制器相应的寄存器,即可让引脚输出高低电平;配置UART控制器相应的寄存器,即可让引脚输出波形。前者相对简单,类似门电路,后者相对复杂,属于协议类接口。类似的协议类接口还有iic、iis、spi等。 对于CPU是不管什么接口的,它只写相应的寄存器,由控制器根据寄存器的配置去控制具体的引脚。 那么CPU是如何访问各个不同的寄存器的呢? CPU只管发出一个地址,内存控制器根据该地址选择不同的模块,然后从模块中得到数据或者发送数据到模块中。 前面的GPIO/门电路接口、协议类接口,都不会把地址输出到外部,接下来的内存类接口,会把地址输出到外部,比如Nor Flash、网卡、SDRAM。 如图,SDRAM、DM9000网卡、Nor Flash都接在JZ2440的数据总线和地址总线上,CPU把数据和地址发送出去,然后内存控制器根据片选信号选择相应的设备接收地址和数据信号,互不干扰。 片选信号和地址的关系怎么确定? 这个是由2440芯片特性决定的。 当选择Nor Flash启动时,CPU发出的指令的地址范围处于0x0000000 - 0x08000000,内存控制器就会使nGCS0处于低电平

mysql 插入汉字 异常 Incorrect string value: '\xE8\xA7\x84\xE5\x88\x99' for column 'name'

我的梦境 提交于 2020-11-03 01:26:41
mysql 插入汉字 异常 Incorrect string value: '\xE8\xA7\x84\xE5\x88\x99' for column 'name' 参考文章: (1)mysql 插入汉字 异常 Incorrect string value: '\xE8\xA7\x84\xE5\x88\x99' for column 'name' (2)https://www.cnblogs.com/huzi007/p/5659361.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4700293

Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a25_Flash程序空间中数据访问

不问归期 提交于 2020-08-20 08:14:13
*本文及代码参阅彭伟《单片机C语言程序设计实训100例》 一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示) 图1 二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示) 图2 图3 图4 三,点击Source Code标签。(如下图5所示) 图5 四,编辑main.c Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a25_Flash程序空间中数据访问 (如下图6所示) 图6 五,Main.c 代码: //----------------------------------------------------------------- // 名称: Flash程序空间的数据访问 //----------------------------------------------------------------- // 说明: 本例运行时,按下K1将读取并显示存放于Flash程序内存中的 // 320个字节数据及60个字数据. // //----------------------------------------------------------------- #include “myfunc01.h” //-----------------------------------------------------

Axure RP9教程 链接交互

浪尽此生 提交于 2020-08-20 05:24:52
Axure 链接交互 一、说明 二、效果展示 三、操作步骤 一、说明 链接交互是web中最常见的一种效果,也是最简单的一种实现方式,主要展示形式分两种: 从A页面跳转到B页面; 从主页面的菜单栏,在iframe 1 打开新的页面。 下面我们通过一个简单的APP页面跳转来实现第一种效果的展示,第二种效果将会在后续的行内框架文章中会介绍。 二、效果展示 链接案例:https://f9d9x0.axshare.com 三、操作步骤 在画布中添加一个434X841的矩形框,圆角在样式中设置为20,如下: 再添加一个375X668的矩形内屏; 通过占位符添加其他布局,其中分类区域如何实现横向居中分布显示效果,具体步骤如下: 首先添加一个类目矩形框大小:60X64, 选择其中一个类目矩形框,使用Ctrl+D复制其他四个; 选择其中一个类目矩形,移植右侧,选中所有类目矩形,选择菜单栏中对齐方式:垂直对齐 选择banner占位符,添加鼠标单击时交互事件,同步插入打开链接动作,选择链接到活动详情,具体操作如下: 5.在活动详情页头部添加返回图标<,并在图标中添加鼠标点击时交互事件,同步插入打开链接动作。注意,这里设置链接到返回之前的页面 2 无需指定页面。 IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。

玩转Redis-HyperLogLog原理探索

六月ゝ 毕业季﹏ 提交于 2020-08-16 21:45:04
  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用。本文是《玩转Redis》系列第【10】篇,最新系列文章请前往 公众号“zxiaofan” 查看,或 百度搜索“玩转Redis zxiaofan” 即可。 本文关键字:玩转Redis、HyperLogLog原理、基数缓存、密集存储结构和稀疏存储结构; 大纲 伯努利试验 HyperLogLog结构 HyperLogLog对象头 pfcount及基数缓存 pfadd底层逻辑 密集存储结构和稀疏存储结构 HyperLogLog引发的思考 名词解释: 1、基数 :集合中不重复元素的个数; 2、HLL :HyperLogLog 的简写; 概要   上文 《玩转Redis-HyperLogLog统计微博日活月活》 介绍了牛逼哄哄的HyperLogLog,传入元素数量或体积非常大时,HLL所需空间固定且很小。12kb内存可计算接近 2^64 个不同元素的基数。如此厉害,怎能不继续深入探索呢? PS:看完这篇文章,你会发现HyperLogLog能统计的基数值实际并不是 2^64 。 1. 伯努利试验   介绍HyperLogLog底层原理前,我们先了解下伯努利试验(援引百度百科)。   伯努利试验(Bernoulli experiment)是在同样的条件下重复地、相互独立地进行的一种随机试验。   其特点是该随机试验只有两种可能结果