摘要: 直接上代码: #include <stdio.h> int main(){ int a = 0xb9b9b9b9; char *ptr = (char *)&a; if(*ptr == 0xb9) printf("haha\n");} #include <stdio.h> int main(){in 阅读全文
posted @ 2021-05-13 17:22 rec0rd 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 长话短说,onenote在中文切换英文时,会强迫设置calibri字体,尽管我们设置的默认字体包含英文,而这个字体非常丑,这个恶心的bug据说存在了十几年,害惨了无数强迫症患者。 多亏了LXF同学的逆向研究,治愈了强迫症(全网唯一真正解决方案): https://lxf.me/116?unappro 阅读全文
posted @ 2021-05-12 18:50 rec0rd 阅读(1616) 评论(0) 推荐(0) 编辑
摘要: 逛网页发现有人总结了这样的一个算法,思路很是巧妙,总结记录一下。 在某些场景下,可能需要根据节点指针p去删除该节点,这在单向链表中因为较难获取其前向节点,只能遍历链表进行删除操作。然而实际上还有这样一种“偷梁换柱”的方法,针对节点较小的情况尤其有效: 将p->next的节点内容复制到节点p中,删除p 阅读全文
posted @ 2017-10-25 16:27 rec0rd 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 前言 :在网上搜了一大圈,发现少有对X86寄存器有较完善归纳的,基本上都在讨论普通目的(GPRs)寄存器,在此汇总记录一下目前得到的结论以备忘。 1. 先看一下现实情况 X86-64下gdb查看进程寄存器: 这些能看到的是CPU的普通寄存器,还有一些寄存器是这里看不到的。 2. 回顾一下历史 在X8 阅读全文
posted @ 2017-10-16 18:14 rec0rd 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 对Padding Oracle Attack与哈希扩展长度攻击想做个精炼总结,故作此记录。 首先,这两个漏洞都与padding有关(不完美的技术细节总是容易出漏洞)。 其次,这两个漏洞都是算法或算法模式本身的缺陷,但也都需要开发人员其他的一些疏忽才能被利用,例如Padding Oracle需要解密结 阅读全文
posted @ 2017-10-16 10:33 rec0rd 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 前言:glibc在free一块堆内存的时候会检查堆头,如果堆头有异常,就报free err、double free等问题,然而实际上这可能是另外一个地方的堆溢出导致的本堆块堆头被踩导致的,并不是什么double free。这个时候就有个简单的定位方法去定位这种问题。 1. 现象: Continuin 阅读全文
posted @ 2017-10-12 18:05 rec0rd 阅读(2326) 评论(0) 推荐(0) 编辑
摘要: 前言:技术总是处在不断发展的过程,各种技术的细节和涵义也在不断的变迁,因而我们很难像数学给每种理论下一个严格的定义一样去对待技术,这就是为什么我们对很多技术的定义甚是困惑,因为它是不严谨的,是在历史的长河中不断变迁的,在变迁的过程中又有可能是自相矛盾的。我们更应该从思想和动机去理解技术而不是定义,毕 阅读全文
posted @ 2017-10-10 17:50 rec0rd 阅读(12357) 评论(0) 推荐(3) 编辑
摘要: 1. 问题背景: 在fuzz的时候,我们经常会感到很被动,似乎只能静静地等待崩溃的出现,或者不出现:( 其实这个过程中我们可以进入程序内部观测fuzz的实际效果,如果发现效果不佳可以着手调节策略。 怎么在没有崩溃的时候观察fuzz的效果呢?覆盖率似乎看不到实际的打击效果(是否饱和打击?) 这两天用简 阅读全文
posted @ 2017-09-28 09:34 rec0rd 阅读(530) 评论(0) 推荐(0) 编辑