CTF 六月 20, 2020

CTF-PWN PE File Structure & PE EntryPoint Feature

文章字数 35k 阅读约需 32 mins.

可执行程序通常在开发过程中,或许因为需要二进制安全防护,或许因为压缩,通常在程序中植入一段代码,运行时优先取得控制权,处理后的将控制权交还。其目的即为隐藏程序真正的OEP防止破解。通常这种行为可被叫做加壳,加壳不仅可以隐藏OEP,还可以提高部分程序的运行速度。通用加壳程序应阻止外部程序进行附加或对本身进行反汇编分析与动态分析,以保护壳内原始程序不被破坏。此种方法也可应用于病毒绕过杀软查杀。

在Windows操作系统中,PE即为Portable Executable,即为可执行程序。PE程序的结构如图所示:

所有的PE文件均以DOS 'MZ' HEADER开始,程序在DOS下执行...

查看全文

CTF 五月 25, 2020

CTF LazySysAdmin WriteUp

文章字数 17k 阅读约需 16 mins.

VulnHub Page: https://www.vulnhub.com/entry/lazysysadmin-1,205/

靶机上线后,通过netdiscover -r 192.168.1.1/24扫描获取主机IP地址为192.168.1.200

Currently scanning: 192.168.135.0/16   |   Screen View: Unique Hosts                                       

48 Captured ARP Req/Rep packets, from 1 hosts.   Total size:...
查看全文

CTF 五月 24, 2020

CTF Born2Root WriteUp

文章字数 22k 阅读约需 20 mins.

VulnHub Page:https://www.vulnhub.com/entry/born2root-1,197/

靶机上线后,通过netdiscover -r 192.168.1.1/24扫描获取主机IP地址为192.168.1.197

 Currently scanning: 192.168.25.0/16   |   Screen View: Unique Hosts                             

 18 Captured ARP Req/Rep packets, from 8 hosts.   Total size: 1080...
查看全文

CTF 五月 22, 2020

CTF Covfefe B2R WriteUp

文章字数 10k 阅读约需 10 mins.

VulnHub Page:https://www.vulnhub.com/entry/covfefe-1,199/

靶机上线后,通过netdiscover -r 192.168.1.1/24扫描获取主机IP地址为192.168.1.194

Currently scanning: 10.17.66.0/8   |   Screen View: Unique Hosts 
2812 Captured ARP Req/Rep packets, from 1 hosts.   Total size: 168720   ...
查看全文

C++ 五月 05, 2020

C++面向对象高级开发-兼谈对象模型-关于const、new、delete、basic_string使用new(extra)扩充申请量

文章字数 18k 阅读约需 16 mins.

  • 关于const
  • 关于new, delete
  • basic_string使用new(extra)扩充申请量

在设计规范中,第4条规定了若成员函数内对数据无任何改动,则在函数参数列后本体前增加const关键字。

当对象调用函数时,对象可为const对象或非const对象,函数可为const成员函数或非const成员函数。当const对象调用const函数时,const函数不会更改数据,故const对象可以调用const函数。非const对象调用const函数时,const函数不改变数据,所以此时仍...

查看全文

C++ 五月 01, 2020

C++面向对象高级开发-兼谈对象模型-复合继承关系下的构造和析构、对象模型ObjectModel关于vptr与vtbl、this指针、动态绑定

文章字数 11k 阅读约需 10 mins.

  • 复合继承关系下的构造和析构
  • 对象模型(Object Model):关于vptr和vtbl
  • 对象模型(Object Model):关于this指针
  • 对象模型(Object Model):关于Dynamic Binding

对象与对象之间的关系,可分为复合Composition、继承Inheritance、委托Delegation。

Inheritance继承关系下的构造和析构

当子类继承自父类时,子类对象中存在父类的部分。基类的析构函数必须为虚函数,否则会出现未定义行为。继承关系下的构造函数是由...

查看全文

C++ 四月 23, 2020

C++面向对象高级开发-兼谈对象模型-C++11新特性数量不定的模板参数、auto、range-based for及引用

文章字数 5.6k 阅读约需 5 mins.

  • C++11-数量不定的模板参数
  • C++11-auto
  • C++11-range-based for
  • 引用

在传统的模板类或模板函数中,模板参数的个数是确定的,数量不定的模板参数允许任意数量的模板参数。print函数接收两组模板参数,第一组中有一个模板参数typename T,第二组中的模板参数为:typename... Types,数量不定。在调用句中,可推断bitset容器必有对<<操作符重载才可重定向至std::cout。print函数内部使用std::cout输出第一参数后...

查看全文

C++ 四月 11, 2020

C++面向对象高级开发-兼谈对象模型-模板专题

文章字数 7.2k 阅读约需 7 mins.

  • 类模板
  • 函数模板
  • 成员模板
  • 模板特化
  • 模板偏特化-个数的偏
  • 模板偏特化-范围的偏
  • 模板模板参数
#include <cstdlib>

template <typename T>
class Complex {
public:
    Complex(T r = 0, T i = 0) : re(r), im(i) { }
    Complex& operator += (const Complex&);
    T real () const { return re; }
    ...
查看全文

C++ 三月 15, 2020

C++面向对象高级开发-兼谈对象模型-转换函数、智能指针、迭代器、仿函数与命名空间

文章字数 11k 阅读约需 10 mins.

  • 转换函数
  • 非explicit单实参构造函数
  • 转换函数与非explicit单实参构造函数
  • explicit单实参构造函数
  • 转换函数的模板偏特化实例
  • 智能指针
  • 迭代器
  • 仿函数
  • namespace命名空间
#include <iostream>
#include <cstdlib>

class Fraction {
public:
    Fraction(int num, int den =1) : m_numerator(num), m_denominator(den) { }...
查看全文

C++ 三月 08, 2020

C++面向对象高级开发-继承、复合、委托与组合设计模式

文章字数 9.7k 阅读约需 9 mins.

  • Composition 复合
  • Delegation 委托
  • Inheritance 继承
  • Inheritance+Composition继承复合结构
  • Delegation+Inheritance委托继承结构
  • 设计模式总结
template <class T, class Sequence = deque<T>>
class queue {
...
protected:
    Sequence c; //底层容器
public:
    bool empty() const {return...
查看全文
加载更多
0%