这是全国大学生信息安全竞赛中的一道题,当初没有做出来,现在学习pwn拿出来练习一下。

漏洞分析

首先我们用IDA打开后直接审计存在漏洞函数的伪C语言代码。
这里的算法比较简单,就是读入index和value,把value存入相应的位置。

Read More

堆栈概述

  1. 对于学习缓冲区溢出,堆栈是一个不容忽视的概念,堆栈是两种数据结构。前一段时间经过对栈溢出利用的学习,明白了栈空间是在程序设计时已经规定好怎么使用,使用多少的内存空间。典型的栈变量包含函数的普通变量、数组等。栈变量在使用的时候不需要额外的申请操作,系统会根据函数中的变量声明自动在函数栈帧中给其预留空间。
  2. 对于堆而言,它具备以下特性:

    Read More

描述

mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.但需注意,直接对该段内存写时不会写入超过当前文件大小的内容。

Read More

漏洞描述:

Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。
一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。

Read More

当我们要寻找软件漏洞 bug 的时候,或者做恶意代码分析的时候,首先会找一些常用的而且容易被错误使用的函数。但是有时候程序代码太多找的比较辛苦,并且费时间。所以我们可以写一个脚本来跟踪这些函数,找出调用它们的地方,之后在这些地方的背景色设置成不同的颜色,这样我们在 IDA 窗口中就能很方便的看出来。

Read More

定义一个抽象类

例子:

1
2
3
4
5
6
7
8
9
10
11
abstract class A{
private String info = "Hello world";
public void print(){
System.out.println(info);
}
public abstract void get(); //只声明没有方法体
}
public class Test {
public static void main(String args[]){
}

Read More

关于IDAPython的安装教程网上的资料非常少,也不是很详细,我费了好长时间才装好,现在和大家分享一下。

注意事项

下面几点关系到安装是否成功

  1. IDA必须是安装版的,我以前用的是免安装版的。
  2. python版本、IDA版本,IDAPyhton版本必须匹配。
  3. python、IDA、IDAPython必须都是32位的或者都是64位的。

    Read More