- 博客(12)
- 收藏
- 关注
原创 ssh断开后服务器继续运行程序
网上已经有很多方法了有时候重新登陆的时候会发现ps后没有相关进程,因为ps默认的显示出本用户的进程,用 ps -ef|grep **(你要找的进程),从全部的进程中找。...
2018-09-21 10:28:12
1219
原创 The LLVM Target-Independent Code Generator
The LLVM Target-Independent Code Generator 是一个翻译框架。这个框架提供了一个系列的可利用部分用来把LLVM IR翻译到机器码或者汇编码。它总共包括六部分。1.抽象目标描述就是描述机器的接口,并不包含怎么实现。2.Classes used to represent the code being generated for a target一堆类在codeg...
2018-03-18 23:31:19
488
原创 IR to other language (llvm backend)
这里的other language可以包括汇编码和二进制码。这里是针对不同平台的,我们主要看x86就可以了。对于这方面,主要有这么四个部分需要注意:1.llvm language reference manual 汇编语言手册2.The llvm target-independent code generator3.TableGen 4.Pass我现在不知道这四部分怎么串在一起就写成了一个back...
2018-03-18 01:10:17
537
原创 write a backend
This document contains information about adding instruction mapping support for a target. The motivation behindthis feature comes from the need to switch between different instruction formats during v...
2018-03-18 01:08:42
163
原创 llvm pass skelton
主要有三种pass1.analysis pass 2.transform pass 3.utility pass这三种pass应该有不同的功能和不同的框架。github上有许多pass的框架。先看class类的子类。1.FunctionPass 全局优化里面的函数有三种,纯虚函数,普通虚函数,非虚函数而runonfunction是纯虚函数,所以每一次写pass的时候都要重新写runonfuctio...
2018-03-17 00:45:59
226
原创 llvm
1 LLVM Design & Overview 31.1 LLVM Language Reference Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 User Guides 2452.1 Building LLVM with CMake . . . . . . . . . ...
2018-03-15 23:06:27
424
原创 linux的默认程序问题
1.linux的环境变量2.linux存在多个版本的程序的时候怎么设置默认程序在linux中编译源码的时候,有很多时候存在的编译器的版本问题,很多源文件的编译器要求可能和你系统自带的编译器版本不兼容。还有的时候,你需要手动地添加环境变量,不然每次都找可执行文件在哪会很麻烦。所谓的环境变量就是当你执行一个可执行程序的时候只用打出它的名字(你可以给他起名字)就行了,而不必把
2018-01-01 17:26:44
588
原创 内存安全之defense之alsr
ASLR(address space layout randomization) ASLR做的事情是什么呢? 它的目的是打乱地址空间,让攻击者们找不到敏感的信息的地址。不过很遗憾,它并不是完全随机化的,所以总是有规律可循的。 其实,这种防御的想法是相当朴素的。 说实话,是那种让人沮丧的朴素。 老实说,工程的思想总是让人提不起劲儿来。是有些见招拆招的巧,但总透着点一叶障目的蠢。 现在时兴的
2017-12-24 12:32:55
639
原创 gs寄存器
今天写攻击的时候触发了栈保护,看了一下汇编代码,发现canary放在一个gs:0x14的地方,不过查了gs内的值发现里面存放的是0x0。 后来查资料发现它是不用这个值的,而是用的宏MSR_GS_BASE。
2017-12-23 10:29:45
4505
原创 操作系统的编写与linux的学习
最初想要学习linux内核,就随便下了几本出名的书看了看,看不太懂。我本身又比较喜欢把东西弄得很清楚,于是就打算自己写一个操作系统,一步一步复现linux内核。但是网上又没有相关的书籍,我连最开始的bootloder都不知道怎么写。所以就开始读于渊的《自己动手写操作系统》,打算从bootloader开始一点点学习。收获很多,特别是底层的知识,寄存器怎么用,BIOS中断怎么用等等,对计算机的完全了解
2017-05-16 11:05:01
289
原创 汇编语言常识
显存区B8000h~BFFFH,共32k,向这个区域写东西会立刻显示出来。INT 21h是一个特别有用的中断,通过这个中断以及AX,DS等寄存器之间的配合可以实现很多功能,比如说,非显存区的屏幕显示lodsb是一个从数据段向AL中加载的指令
2017-05-15 14:30:28
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人