ICode9

精准搜索请尝试: 精确搜索
  • C++默认构造函数和空类大小2021-11-03 15:35:47

    经常会看到这样一些观点,一个空的类,在没有构造函数的时候,生成一个实例,会调用自动生成的构造?会调用默认生成的无用构造?等一些回答。一个空类的实例大小为1,那一个字节又是什么? struct TestStruct1 { }; int main() { TestStruct1 st1; cout << sizeof(st1); } 现有一段代

  • BUUCTF-网鼎杯2020-青龙组-joker2021-10-28 20:32:26

    一.程序分析 首先还是将程序进行查壳   IDA打开后尝试f5,发现因为堆栈不平衡,无法直接反编译,所以修改一下 选项->常规->反汇编  勾选堆栈指针,快捷键alt+k,将SP修改为零,如果下面还遇到同理 二.伪代码分析  int __cdecl main(int argc, const char **argv, const char **envp)

  • C++栈回溯原理2021-10-27 21:31:09

           我们在使用VS调试源代码或使用Windbg调试exe程序时,遇到异常,调试器就会中断下来,然后就能查看到此刻的函数调用堆栈。软件是执行到某一句机器代码产生了异常,可以看成执行了某一句汇编代码产生了异常,通过一句汇编代码,是如何将所在线程此刻完整的函数调用堆栈给回溯进来

  • 6.828 lab12021-10-26 18:03:17

    Booting a PC Exercise 1. Familiarize yourself with the assembly language materials available on the 6.828 reference page. You don't have to read them now, but you'll almost certainly want to refer to some of this material when reading and writi

  • 栈溢出2021-10-25 22:00:07

    栈溢出原理 并不是要转去学二进制了,毕竟Web对我来说还有很多路要走,学习栈溢出主要是为了应付马上的信安软考 寄存器分配 ESP、EBP、EIP 以32位x86架构为基础,Windows提供三个寄存器帮助定位栈和函数调用--ESP、EBP、EBP ESP ESP 用来存储函数调用栈的栈顶指针,指向栈区中最上一个栈帧

  • 融汇贯通系列之--栈(一)2021-10-24 19:00:58

    栈这个东西联结了C语言,函数调用,汇编指令,操作系统,虚拟内存。总而言之就是非常的重要。 我们首先来看栈的作用,为什么需要栈,不用栈可以吗? 栈一般包括如下几方面的内容: 函数的返回地址和参数 临时变量:包括函数的局部变量以及编译器生成的其它临时变量 保存的上下文,包括在函数调用前后

  • pwndbg计算可以输入参数位置距离ebp的偏移2021-10-23 18:31:17

    在我们做pwn题目的过程中,有时候会出现ida静态分析偏移有误的情况 这时候我们就需要利用pwndbg动态调试来确定偏移地址 首先随便找一个可以进行栈溢出的程序进行gdb调试 下断点: 运行到可以进行到栈溢出的位置或者直接在该位置下断点 然后输入大量垃圾数据: 继续运行程序,程序崩溃:

  • [pwnable] calc wp2021-10-19 12:33:56

    title: calc description: pwnable | ROP ##题目考点 数组越界访问ROP ##解题思路 进入ida进行程序逻辑分析,发现如下数组越界漏洞从而实现任意地址写: unsigned int calc() { int v1; // [esp+18h] [ebp-5A0h] //v2[0 - 1] int v2[100]; // [esp+1Ch] [ebp-59Ch

  • 2021-2022-1 20212807《Linux内核原理与分析》第二周作业2021-10-03 13:30:15

    第二周作业 一、本周学习中遇到的问题1.程序无法连接动态库2.-m32 二、 实验一 通过反汇编一个C程序,分析汇编代码理解计算机是如何工作的1.实验过程2.汇编代码分析 一、本周学习中遇到的问题 1.程序无法连接动态库 运行后出现如下错误:error while loading shared libra

  • 2021-2022-1 20212812《Linux内核原理与分析》第二周作业2021-10-03 13:03:16

    遇到的问题 一、计算机是如何工作的? 现代计算机大都采用冯诺依曼结构,冯诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,所以计算机在运行的时候需要从中将数据取出,然后用程序进行处理,最

  • 《C++反汇编与逆向分析技术揭秘》--钱林松,赵海旭 著2021-10-03 11:35:54

    1 熟悉工作环境和相关工具 1.1 调试工具Microsoft Visual C++6.0和OllyDBG 1.2 反汇编静态分析工具IDA 1.3 反汇编引擎的工作原理 2 基本数据类型的表现形式 2.1 整数类型 2.2 浮点数类型 2.3 字符和字符串 2.4 布尔类型 2.5 地址、指针和引用 2.6 常量 3 认识启动函数,找到用户

  • 2021-2022-1 20212813《Linux内核原理与分析》第二周作业2021-10-02 22:59:27

    反汇编一个简单的C程序 一、实验过程二、实验分析 一、实验过程 本次实验反汇编的C语言程序为: 使用gcc –S –o main.s main.c -m32命令将main.c中的程序编译成汇编代码,并生成main.s文件,使用cat main.s查看编译结果如下图所示: 二、实验分析 删除多余的代码段后得到的汇

  • 如何用栈来管理函数调用2021-09-23 17:33:08

    每个函数执行前都有一个起始位置(即被调用的位置,存放在 CPU 的 ebp 寄存器中);当函数开始执行后,会有一个栈顶位置(即执行到当前位置栈里存放的临时变量,存放在 CPU 的 ebp 寄存器中)。 在函数被调用的时候,首先将当前函数的起始位置压住栈中,将 ebp 存放的指针指向这个位置,然后开始执行被

  • 初学ucore之lab12021-09-18 03:01:57

    ------------恢复内容开始------------ 初学ucore。 ucore的lab1并不难,每个练习的思路也很清晰。lab1学完,并看了他人的笔记巩固。写下自己的理解。 80386型CPU开机的流程:先执行在bios中的程序,但由于bios容量很小,不能完成所有的工作,也不具备更高的拓展性,所以他读取磁盘中第一个扇区

  • C语言笔记——番外篇 函数栈帧的创建2021-09-14 21:59:02

    建议安装VS2013可以详细查看栈帧创建过程,本篇了解为主。 寄存器eax,ebx,ecx,edx,ebp,esp  ebp,esp这两个寄存器中存放的是地址,这两个地址维护的是用来函数栈帧的。每一个函数调用都要在栈区创建一个空间。 在VS2013中,main函数是被其他函数调用的:_tmainCRTStartup, mainCRTStar

  • (八)羽夏看C语言——C番外篇2021-09-09 08:01:07

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章

  • reverse例题讲解2021-09-04 21:04:36

    reverse答案 培训中例题的答案 第一题 32位exe程序,c++编写的,没有加壳 运行一下看看 程序需要输入serial 直接查看main函数,f5查看伪代码 int __cdecl main(int argc, const char **argv, const char **envp) { signed int v3; // ebx char v4; // al int result; // eax

  • 逆向反汇编day12021-09-04 11:05:48

      再main函数没有调用完之前其部分变量仍然是存在栈中的。函数调用前后基本EIP、EBP、ESP基本变化流程如下: 1、调用函数中push ebp,将main函数的ebp压栈,然后mov ebp, esp将当前main函数的esp赋给fun函数的ebp,得到当前fun函数的栈底地址。 2、调用函数结束之前,执行leave指令,其

  • 逆向脱壳分析基础学习笔记十二 汇编 全局和局部变量2021-09-03 20:33:01

    本文为本人在 大神论坛 逆向破解脱壳学习笔记之一,为本人对以往所学的回顾和总结,可能会有谬误之处,欢迎大家指出。 陆续将不断有笔记放出,希望能对想要入门的萌新有所帮助,一起进步 全局变量和局部变量 在提及全局变量和局部变量之前,需要先谈谈程序运行时在内存中的状态 任何一个程

  • fuckup2021-08-31 23:34:50

    32位静态链接ELF,checksec只开了NX 不过事实上这个程序自己实现了一个类似ASLR的东西,并且在程序运行流程中会运行不止一次 这会导致程序的基址和栈基址一直在变 程序没有main函数,流程在start函数里 start函数如下(已经经过重命名) void __cdecl start(int a1) { int v1; // [esp-1

  • 【计算机网络病毒七】Windows病毒之PE型病毒2021-08-31 16:02:43

    五、Windows病毒之PE型病毒 5.1 PE病毒原理 获取API函数地址 ​ 原因: Win32程序一般运行在Ring 3,Win32下的系统功能调用,不是通过中断实现,而是通过调用动态链接库中的API函数实现。 普通PE程序通过导入节获取API函数地址,而PE病毒只有代码节,对API函数的调用需要首先找到其在相应DLL

  • 循环语句逆向分析2021-08-29 13:33:19

    循环语句逆向分析 从反汇编的角度简单分析while,do-while和for循环语句 while CPP代码: #include "stdafx.h" void Fun() { int s = 0, i = 1; while (i <= 10) { s += i++; } } int main(int argc, char* argv[]) { Fun(); return 0; } 反汇编: Fun: 00401020 push

  • switch语句逆向2021-08-28 21:03:08

    switch语句逆向 通过反汇编深入了解switch语句,并从中理解为何在某些情况下其性能优于if...else语句 语句结构 switch (整形表达式) { case 常量表达式1: 语句块; break; case 常量表达式2: 语句块; break; ...... ...... .

  • 【SEED Labs 2.0】Return-to-libc Attack and ROP2021-08-25 12:01:38

    本文为 SEED Labs 2.0 - Return-to-libc Attack Lab 的实验记录。 实验原理 Task 1: Finding out the Addresses of libc Functions 关闭地址随机化 $ sudo sysctl -w kernel.randomize_va_space=0 修改链接 $ sudo ln -sf /bin/zsh /bin/sh 使用 gdb调试 $ touch badfile

  • 基于缓冲区溢出的HelloWorld2021-08-23 18:34:29

    基于缓冲区溢出的HelloWorld CPP代码 #include "stdafx.h" void HelloWorld() { printf("Hello World"); getchar(); } void Fun() { int arr[5] = {1,2,3,4,5}; arr[6] = (int)HelloWorld; } int main(int argc, char* argv[]) { Fun(); return 0; } 情况说明

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有