prologue epilogue】的更多相关文章

https://www.hackerschool.com/blog/7-understanding-c-by-learning-assemblyhttps://www.hackerschool.com/blog/5-learning-c-with-gdb Last time, Alan showed how to use GDB as a tool to learn C. Today I want to go one step further and use GDB to help us und…
转自:https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html 5.24 Declaring Attributes of Functions In GNU C, you declare certain things about functions called in your program which help the compiler optimize function calls and check your…
from :http://www.oschina.net/news/51084/gcc-4-9-0 GCC 4.9.0 公布,此版本号是个主要版本号更新,包含了 GCC 4.8.x 系列和之前的 GCC 版本号都没有的新特性,新特性很之多.下载地址:http://gcc.gnu.org/mirrors.html 警告 移除 mudflap 执行时检查器,mudflap 选项保留,但没有不论什么效果. 对一些非常多老的系统和一些不维护的平台的支持在 4.9 版本号中声明为过世的,下一个版本号将永久…
http://clrprofiler.codeplex.com/ http://blogs.msdn.com/b/davbr/archive/2012/11/19/clrprofiler-4-5-released-includes-windows-store-app-support.aspx Rewrite MSIL Code on the Fly with the .NET Framework Profiling API Aleksandr Mikunov This article assum…
qemu的作者在QEMU, a Fast and Portable Dynamic Translator一文提到了qemu的动态翻译机制, 大致可以总结为如下过程: 目标代码中的一条指令 | |--(1) | 微操作(Micro Op) | |--(2) | 主机代码 过程1: qemu将目标代码的指令一条条地解释为微操作(Micro Op). 通常来说,一条目标指令,可能被解释成一条或者几条微操作,因此这个过程是会让目标代码的执行过程比原来慢的. 微操作是精挑细选的,它们的组合基本上可以完整地…
目录 11.1 本篇概述 11.2 RDG基础 11.2.1 RDG基础类型 11.2.2 RDG资源 11.2.3 RDG Pass 11.2.4 FRDGBuilder 11.3 RDG机制 11.3.1 RDG机制概述 11.3.2 FRDGBuilder::AddPass 11.3.3 FRDGBuilder::Compile 11.3.4 FRDGBuilder::Execute 11.3.5 RDG机制总结 11.4 RDG开发 11.4.1 创建RDG资源 11.4.2 注册外部资…
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2340%20-%20Fimbulvetr%3A%3APrologue/起源 题意:树上最大流+费用流,源点为树根,汇点为叶节点. 题解: 最大流貌似很好求? 这样搞 void dp(int x) { f[x]=; for(int i=head[x],y;i;i=e[i].next) { y=e[i].go; dp(y); f[x]+=min(e[i].v,f[y]); } if(!head[x])f[x]=i…
"We should start back", Gared urged as the woods began to grow dark around them. "The wildings are dead". "Do the dead frighten you"? Ser Waymar Royce asked with just the hint of a smile.Gared did not rise to the bait. He was…
FLEX 什么是FLEX?它是一个自动化工具,可以按照定义好的规则自动生成一个C函数yylex(),也成为扫描器(Scanner).这个C函数把文本串作为输入,按照定义好的规则分析文本串中的字符,找到符合规则的一些字符序列后,就执行在规则中定义好的动作(Action).例如在规则中可以这样定义:如果遇到一个换行字符\n,那么就把行计数器的值加一. Flex文件就是一个文本文件,内容包括定义好的一系列词法规则.文件的命名习惯上以小写字母l(L)来作为文件后缀.如果为了清晰,也可以用.flx或者.f…
1. System.Object        The runtime requires every type to ultimately be derived from the System.Object type.        Because all types are ultimately derived from System.Object, you are guaranteed that every object of every type has a minimum set of…
memset 是 msvcrt 中的一个函数,其作用和用途是显而易见的,通常是对一段内存进行填充,就其作用本身不具有任何歧义性.但就有人一定要纠结对数组的初始化一定要写成如下形式: int a[...] = { 0 }; int a[100] = { 1, 2 }; 而认为如下使用 memset 的写法不明就里的被其排斥和拒绝: memset(a, 0, sizeof(a)); 这种看法首先是毫无道理的,在代码风格,可读性,可维护性上根本不构成一个命题,且 memset 在开发中的使用是非常常见…
Catalog . Linux attack vector . Grsecurity/PaX . Hardened toolchain . Default addition of the Stack Smashing Protector (SSP): Compiler Flag: GS . Automatic generation of Position Independent Executables (PIEs): System Characteristic + Compiler Flag:…
第一部分  通过词缀认识单词 (常用前缀一) 1.a- ①加在单词(形容词)或词根前面,表示"不,无,非" acentric [ə'sentrik] a  无中心的(a+centric中心的) asocial [ei'səuʃəl] a 不好社交的(a+social好社交的) amoral [ə'mɔrəl] a  非道德性的(a+moral道德的:注意:immoral不道德的) apolitical. [,eipə'litikəl]  a 不关政治的(a+political政治的)…
前言:本文主要概括了QEMU的代码结构,特别从代码翻译的角度分析了QEMU是如何将客户机代码翻译成TCG代码和主机代码并且最终执行的过程.并且在最后描述了QEMU和KVM之间联系的纽带. 申明:本文前面部分从qemu detailed study第七章翻译而来. 1.代码结构 如我们所知,QEMU是一个模拟器,它能够动态模拟特定架构的CPU指令,如X86,PPC,ARM等等.QEMU模拟的架构叫目标架构,运行 QEMU的系统架构叫主机架构,QEMU中有一个模块叫做微型代码生成器(TCG),它用来…
译者前言 总是看到有人说用汇编实现objc_msgSend是为了速度快,当然这个不可否认.但是难道没有别的原因?于是就看到了这篇文章,遂翻译之!=.= 我自己的理解就是,用汇编实现,是为了应对不同的“Calling convention”,把函数调用前的栈和寄存器的参数.状态设置,交给编译器去处理. 先看看原文吧. 原作者: Ari Grant 原文链接: Why objc_msgSend Must be Written in Assembly http://arigrant.com/blog/…
/L16"ASM" Nocase Line Comment = ; File Extensions = ASM INC DEF /Colors = ,,,,, /Colors Back = ,,,,, /Colors Auto Back = ,,,,, /Font Style = ,,,,, /Delimiters = ~!%&^*()-+=|\/{}[]:;"'<> , /Function String = "^(%[a-zA-Z_@?$]+[…
Warmup(2) 程序很小,读写操作直接通过int 80h系统调用完成.栈溢出漏洞很明显,能溢出20字节.提示由于沙盒的保护只能来读取/home/warmup/flag文件.那么思路就很清楚了,打开flag文件,读取flag文件到内存,写内存到标准输出.现在遇到了第一个问题,打开文件的系统调用是5,系统调用号要放在eax中,如何得到这个系统调用号以及如何得到后要立马执行系统调用打开文件,读文件到内存. 最初想的是sys_read会返回读取的字节数,sys_write会返回写的字节数,我们可以控…
  学习高效编程的有效途径之一就是阅读高手写的源代码,CRT(C/C++ Runtime Library)作为底层的函数库,实现必然高效.恰好手中就有glibc和VC的CRT源代码,于是挑了一个相对简单的函数strlen研究了一下,并对各种实现作了简单的效率测试. strlen的函数原形如下: size_t strlen(const char *str); strlen返回str中字符的个数,其中str为一个以'\0'结尾的字符串(a null-terminated string). 1. 简单…
本文译至: http://gcc.gnu.org/onlinedocs/gccint/Initialization.html 如我们所知,在GCC通过给代码追加__attribute__((constructor))和__attribute__((destructor))的方式能够追加初始函数和终止函数, 这篇文章介绍了GCC内部是怎样实现上述处理的. 简单的说,就是在最常常的情况下,初始函数会被追加到.ctor section中,.init会调用相应的函数处理这些初始函数.终止情况类似. --…
Introduction One of the revolutionary features of C++ over traditional languages is its support for exception handling. It provides a very good alternative to traditional techniques of error handling which are often inadequate and error-prone. The cl…
.NET中 类型,对象,线程栈,托管堆在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and The Managed Heap for .NET by 唐小崇 http://www.cnblogs.com/tangchong .NET中的类型,无论是值类型或引用类型都是继承自Object的类.这点跟Java类似,但与C/C++有很大不同.既然值类型与引用类型都是类,那它们的没有什么不同的地方.…
.NET中 类型,对象,线程栈,托管堆 在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and The Managed Heap for .NET by 唐小崇 http://www.cnblogs.com/tangchong .NET中的类型,无论是值类型或引用类型都是继承自Object的类.这点跟Java类似,但与C/C++有很大不同.既然值类型与引用类型都是类,那它们的没有什么不同的地方…
Windows平台下的漏洞利用与防护 0x00 概述 在过去的二十几年,Windows作为网络安全的主战场之一,攻于防的较量从未停息过.内存破坏漏洞作为研究的重点之一,经历了很多的发展也沉淀了前辈们许多经验和智慧. 本人根据大牛们的各种报告总结了目前Windows平台上内存破坏漏洞利用与防护的发展史,接下来会从应用层和内核层两个方面逐一介绍. 先来看一下总的架构图: 0x01 用户层 应用层漏洞的目的都是为了执行任意代码,所以分为获得执行流+执行shellcode两部分介绍: 获得执行流程 1.…
复制数据的快速方法std::copy C++复制数据各种方法大家都会,很多时候我们都会用到std::copy这个STL函数,这个效率确实很不错,比我们一个一个元素复制或者用迭代器复制都来的要快很多. 比如,我写了一段下面的代码,复制100000000数据量,std::copy的性能要比前两个性能要好.   ; int *k = new int[size]; int *p = new int[size]; //const int size = 5F5E100h; DWORD t1, t2; t1…
本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令.逻辑计算指令.算数运算指令),以及函数的调用规则.个人认为:在理解了本文后,基本可以无障碍地阅读绝大部分标准X86汇编程序.当然,更复杂的指令请参阅Intel相关文档. 1 寄存器. 主要寄存器如下图所示: X86处理器中有8个32位的通用寄存器.由于历史的原因,EAX通常用于计算,ECX通常用于循环变量计数.ESP和EBP有专门用途,ESP指示栈指针(用于指示…
前几天看System V AMD64 ABI标准的时候发现栈帧的顶部后面有一块"red zone",在学cs:app3e/深入理解操作系统的时候并没有遇到这个,总结一下. 引用标准中的话: The 128-byte area beyond the location pointed to by %rsp is considered to be reserved and shall not be modified by signal or interrupt handlers. There…
最近刚开始学习逆向(Reverse Engineering), 发现其学习曲线也是挺陡峭的, 而网上的 许多writeup文章主旨总结就六个字:"你们看我屌吗?" ...几近炫技而对初学者不太友好. 所以打算以初学者的身份来写写自己从入门到深入的经历. 准备 当前许多逆向的writeup倾向于使用IDA-Pro, 而且似乎都依赖于F5(反编译的快捷键), 直接 从二进制文件转成了可读的C代码. 这对于实际工作来说也许是个捷径, 但对于学习来说却 没什么好处. 所以本文逆向采用了另一个开…
关于OC中的消息发送的实现,在去年也看过一次,当时有点不太理解,但是今年再看却很容易理解. 我想这跟知识体系的构建有关,如果你不认识有砖.水泥等这些建筑的基本组成部分,那么我们应该很难理解建筑是怎么建造出来的吧? 学习新知识,应该也是同样的道理! 资料 今年再看 消息发送机制时,也翻了很多文章,本来想自己总结一遍的,但是感觉这篇 Objective-C 消息发送与转发机制原理 实在写的太好了,就直接转载了. 原文:http://yulingtianxia.com/blog/2016/06/15/…
Abstract We present the internals of QEMU, a fast machine emulator using an original portable dynamic translator. It emulates several CPUs (x86, PowerPC, ARM and Sparc) on several hosts (x86, PowerPC, ARM, Sparc, Alpha and MIPS). QEMU supports full s…
转自:https://blog.csdn.net/sdulibh/article/details/46462529 Debug Hacks 作者为吉冈弘隆.大和一洋.大岩尚宏.安部东洋.吉田俊辅,有中文版<Debug Hacks中文版—深入调试的技术和工具>.这本书涉及了很多调试技巧,对调试器使用.内核调试方法.常见错误的原因,还介绍了systemtap.strace.ltrace等一大堆工具,非常值得一读. 话说我听说过的各程序设计课程似乎都没有强调过调试的重要性,把调试当作单独一节课来上(…