ICode9

精准搜索请尝试: 精确搜索
  • objdump反汇编用法示例2020-03-03 09:07:46

    objdump反汇编用法示例 原文:http://blog.csdn.net/zoomdy/article/details/50563680 -d:将代码段反汇编 -S:将代码段反汇编的同时,将反汇编代码和源代码交替显示,编译时需要给出-g,即需要调试信息。 -C:将C++符号名逆向解析。 -l:反汇编代码中插入源代码的文件名和行号。 -j secti

  • CrackMe160 学习笔记 之 0542020-02-26 17:41:41

    前言 做个简单的题目放松一下。 思路 直接分析即可。 分析 OK按钮点击事件 00427B65 |. E8 26E2FEFF call 00415D90 ; 获取name保存到ebp-4 00427B6A |. 8B45 FC mov eax, dword ptr [ebp-4] 00427B6D |. E8 3EBCFDFF cal

  • esp寻址ebp寻址2020-02-21 18:54:32

    栈顶指针esp  栈底指针ebp esp寻址 构建函数   1.使用寄存器传递参数   2.使用堆栈来传递参数     push 1     push 2     push 3     把要用的参数压入堆栈后,需要用call调用函数来计算参数,调用call时,会将call的下一行指令的地址压入栈中,所以使用参数时地址

  • 堆栈:函数嵌套调用2020-02-20 20:03:28

    实现的功能:两层函数调用,外层函数的传入的两个参数再传到子函数中相加,实现四个数相加返回 004010E8 |. 6A 03 PUSH 3 ; 压入3 004010EA |. 6A 02 PUSH 2 ; 压入2 004010EC |. 6A 01

  • 栈帧2020-02-07 11:36:45

    栈帧栈帧调试示例StackFrame.cpp程序调试参考文献 栈帧 栈帧:栈帧就是利用EBP寄存器访问栈内局部变量、参数、函数返回地址等的手段。 栈帧结构: PUSH EBP //函数开始,将现在的EBP入栈进行保存 MOV EBP,ESP //保存当前ESP到EBP ...

  • mov-[地址值]-call2020-02-04 18:08:20

    mov dest, src src:来源 dest:目标 类似 dest=src [地址值] []里面放的一定是地址值 int a = 3; //使用4个字节存储一个3 mov dword ptr [ebp-8],3 //3放入内存需要指定大小 dword ptr //ptr是语法,用于指定大小,左边是单位 word是字,表示2字节,dword是4字节(double wo

  • 【Reverse练习】【Reversing.Kr】【2】Easy_KeygenMe2020-02-03 21:01:19

    Easy_KeygenMe 0 实验环境 【操作系统】Windows 10 【实验工具】IDA Pro 与 Ollydbg 【题目来源】http://reversing.kr/challenge.php 【题目要求】找到序列号 5B134977135E7D13 对应的用户名 1 使用程序 运行程序,首先提示输入用户名 “Input Name” ,然后提示输入序列号 “I

  • checksec的各种保护机制2020-02-02 16:03:30

    CANNARY(栈保护)   这个选项表示栈保护功能有没有开启。   栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会

  • Canary学习(泄露Canary)2020-01-30 15:03:25

    canary 原理 通常栈溢出的利用方式是通过溢出存在于栈上的局部变量,从而让多出来的数据覆盖ebp,eip等,从而达到劫持控制流的目的。栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址让shellcode执行。 当启用栈保护时,函数开

  • 一网打尽:Java 程序员必须了解的计算机底层知识!2020-01-28 16:57:37

    本文来自公众号读者cxuan的投稿 我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的

  • 攻防世界 reverse 流浪者2020-01-26 17:51:42

    流浪者  int __thiscall sub_401890(CWnd *this) { struct CString *v1; // ST08_4 CWnd *v2; // eax int v3; // eax int v5[26]; // [esp+4Ch] [ebp-74h] int i; // [esp+B4h] [ebp-Ch] char *Str; // [esp+B8h] [ebp-8h] CWnd *v8; // [esp+BCh] [ebp-4h] v

  • 程序员不得不了解的硬核知识大全2020-01-22 10:05:39

    我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底

  • 寄存器理解 及 X86汇编入门2020-01-20 15:01:40

    转自:https://www.cnblogs.com/jokerjason/p/9455638.html   I, 汇编语言分类: 汇编语言和CPU息息相关,但是不能把汇编语言完全等同于CPU的机器指令。不同架构的CPU指令并不相同,如x86,powerpc,arm各有各的指令系统;甚至同一种架构的CPU有几套指令集,典型的如arm除了有32位的指令集外,还有

  • 堆栈图2020-01-15 23:57:38

    CALL和JMP的区别 CALL会把调用处的下一个指令的地址压栈,而JMP不会   函数的调用过程 //funciton add(a,b){return a+b} ​ push第一个参数入栈 push第二个参数入栈 ​call调用的返回地址压栈​跳转准备​push ebp //保存当前栈底​mov ebp,esp //提升栈底,此时ebp所在的内存单元

  • 最近研究的伪代码一篇2020-01-15 22:56:27

    以下为ida pro 反编译的按钮事件伪代码 留存下来,以作研究 void __fastcall TMainForm_btnCreateNewSwitehClick(int a1) { int v1; // ebx char v2; // ST08_1 Dialogs **v3; // eax int v4; // edx int v5; // edi int v6; // edx int v7; // ecx int v8; // eax

  • 程序员不得不了解的硬核知识大全2020-01-15 11:53:40

    我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识

  • pwn学习笔记2020-01-14 22:56:38

    本文仅作自己的学习记录,以防丢失或忘记,不属于教程,所以请无视这篇文章。日后再根据情况整理。 1.函数调用过程很重要,大致是 主函数把待传入的参数压栈 -> 返回地址压栈-> 修改ip来到子函数代码 -> EBP压栈 -> ESP赋给EBP(逻辑上开辟一段新栈) ->  存放子函数变量等子程序用到的资源

  • c++ 反汇编 构造函数和析构函数2020-01-12 22:02:09

    构造函数和析构函数出现的时机 局部对象 109: // 局部对象定义调用构造函数 110: 111: CNumber Number; 00C8A37D 8D 4D EC lea ecx,[Number] 00C8A380 E8 14 97 FF FF call CNumber::CNumber (0C83A99h) 局部对象的析

  • 为什么Fun函数能够执行2020-01-11 23:02:48

    #include<stdio.h> #include<windows.h> void Fun() { printf("Kali-Team\n"); } int check() { int arr[4] = {0,1,2,3}; arr[5] = (int)&Fun; return 0; } void main() { _asm{ mov eax,eax; mov ea

  • CTF-wiki bin.exe2019-12-23 22:58:21

    主函数大致逻辑如下: int __cdecl main(int argc, const char **argv, const char **envp) { FILE *v3; // eax HANDLE v4; // eax int v11; // [esp+C4h] [ebp-A8h] DWORD v12; // [esp+D4h] [ebp-98h] LPCSTR lpFileName; // [esp+D8h] [ebp-94h] BOOL pbDebuggerPre

  • 异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)的抛出过程2019-12-18 21:00:46

    新建一个c#控制工程,就用自动生成的代码,不用补任何代码,如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { }

  • 某桌球辅助登录算法分析并转本地验证2019-12-14 20:57:12

    大家好,我是Sendige,很久没有给大家带来算法分析了,今天闲来没事做,想玩一下桌球,但是自己技术不行,所以想找一个辅助来辅助下我的技术,记得之前自己破解过一款,时隔多年,我又亲自对他开刀,惊喜的是,这个辅助更新了,好了,废话不多说,走起!下面因为我注册的账号是用了自己的qq号进行注册,为了避免有

  • 【攻防世界】高手进阶 pwn200 WP2019-11-23 21:00:27

    题目链接 PWN200 题目和JarvisOJ level4很像 检查保护 利用checksec --file pwn200可以看到开启了NX防护 静态反编译结构 Main函数反编译结果如下 int __cdecl main() { int buf; // [esp+2Ch] [ebp-6Ch] int v2; // [esp+30h] [ebp-68h] int v3; // [esp+34h] [ebp-64h]

  • 栈溢出基础2019-11-06 17:01:03

    基础知识 函数调用栈在内存中从高地址向低地址生长 函数状态主要涉及三个寄存器EBP, ESP, EIP EBP : 用来存储当前函数状态的基地址, 在函数运行时不变, 可以用来索引确定函数参数或局部变量的位置 ESP : 用来存储函数调用栈的栈顶地址, 在压栈和退栈时发生变化 EIP : 用来存储

  • CPU异常分析(以trap00为例)2019-11-03 20:04:27

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html CPU异常分析(以trap00为例) 一、CPU检测到除零异常的执行流程   二、Trap00 函数的分析   当发生除零异常时,查IDT表会查到Trap00函数,该函数的目的是构建_KTRAP_FRAME结构,查错误码,之后调用 commonD

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

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

ICode9版权所有