随笔分类 - common-二进制基础
摘要:IDA加载文件过程 在IDA中打开可执行文件时使用静态分析器分析该文件,也称为Loader。在这种装载程序模式下,该程序将不会执行而是交给IDA静态分析,并最终创建一个.idb文件,分析过程中存储信息(包括重命名)的数据库。变量,函数名,标题...都存在这个文件里。 而.idb文件将是分析过程间产生
阅读全文
摘要:02-从零开始用IDA做逆向 0x01、进制的概念 计算机中的进制概念是初学者必须知道的基础知识,学习逆向或者构造漏洞利用的时候会接触到这层面知识。二进制,十进制和十六进制的基本概念如下: BINARY(二进制数):由两个数字0和1组成。 DECIMAL(十进制数):数字由10位数字(从0到9)组成
阅读全文
摘要:0x01、IDA是什么 交互式反汇编器专业版(Interactive Disassembler Professional)简称为IDA。IDA Pro是一款支持交互、可编程的、扩展插件、支持多种处理器的逆向工程利器。 0x02、为什么要用IDA Pro? 为什么要用IDA?因为OD是一个只能调试32
阅读全文
摘要:PE加载的过程 任何一个EXE程序会被分配4GB的内存空间,用户层处理低2G的内存,驱动处理高2G的内存。 1、双击EXE程序,操作系统开辟一个4GB的空间。 2、从ImageBase决定了加载后的基址,ImageSize决定了程序有多大。 3、然后加载DLL 大体流程: 1、PE被执行时,装载器为
阅读全文
摘要:x86反汇编速成 x86体系结构 3种硬件构成: 中央处理器:负责执行代码 内存(RAM):负责存储所有的数据和代码 输入/输出系统(I/O):为硬盘、键盘、显示器等设备提供接口 内存 一个程序的内存可以分为以下四个主要的节: 栈:栈用于函数的局部变量和参数,以及控制程序执行流。 堆:堆是为程序执行
阅读全文
摘要:1、知识点 微软从windows vista/windows server 2008(kernel version 6.0)开始采用ASLR技术,主要目的是为了防止缓冲区溢出 ASLR技术会使PE文件每次加载到内存的起始地址随机变化,并且进程的栈和堆的起始地址也会随机改变。 这样的PE不好调试,如果
阅读全文
摘要:如何开发WinDbg扩展DLL WinDbg扩展DLL是一组导出的回调函数,用于实现用户定义的命令。以便从内存转储中提取特定的信息。扩展dll由调试器引擎加载,可以在执行用户模式或内核模式调试时提供自动化任务的扩展功能。扩展DLL可以导出任意数量用于执行扩展命令的函数。每个函数都被显式地声明为DLL
阅读全文
摘要:1 说明 指定裸函数编写的函数,编译器生成不带任何多余代码。 利用此功能,可以使用内联汇编程序代码编写自己的 prolog/epilog 代码序列。 裸函数对于编写虚拟设备驱动程序特别有用。 2 练习目的 熟悉堆栈结构 参数、局部变量的位置 返回值存储的位置 3 代码实现 // 20180217_裸
阅读全文
摘要:push ebp ; 提升堆栈 mov ebp,esp sub esp,0CCh push ebx ; 保留现场,函数在执行的时候会用到一些寄存器,但这些寄存器中 push esi ; 值很可能会被程序用到,所以要先存储到内存中 push edi push ecx lea edi,[ebp-0CCh
阅读全文
摘要:1、简介 重温编程和反调试的知识。 2、编程知识 整体界面长这个样子,然后拖控件,按钮点击事件。 按钮点击事件的函数编写 获取用户名与密码的值,然后取出用户名的最后一位判断是不是0,如果是0就进入判断函数内,否则就输出注册失败的提示。 void CSehDlg::OnReg() { // TODO:
阅读全文
摘要:1、IDA Pyhon介绍 IDA Python是IDA6.8后自带插件,可以使用Python做很多的辅助操作,非常方便的感觉。 2、IDA Python安装 从github上IDAPython项目获取跟自己电脑IDA、Python对应的版本。 项目地址:https://github.com/ida
阅读全文
摘要:0x1 签名文件制作的方法: 找到静态编译的程序库 使用IDA中的fair工具包,对静态库操作,生成特征库(IDA6.8 是flair68.zip) 0x2 步骤 第一步:使用pcf生成对应静态库的pat文件 第二步:使用sigmake,将pat文件转为sig文件 第三步:将sig文件放入IDA文件
阅读全文
摘要:1 学习目标 WinRAR5.40(64位)的弹框广告去除,由于我的系统为x64版本,所以安装了WinRAR(x64)版本。 OD无法调试64位的程序,可以让我熟悉x64dbg进行调试的界面。 其次是这玩意儿真是太蛋疼了,无休止弹广告。 2 破解思路 1)偷梁换柱 修改汇编函数段首为返回值(本次逆向
阅读全文
摘要:分析petya病毒时新学会的技巧。 IDA技巧1 : string 提取文件中的字符串内容,如果看到一些文件字符串可以定位到关键的函数中。 view -> open subview -> string IDA技巧2 :图形化与视图的切换-空格 选择 Options -> General-> use
阅读全文
摘要:0 前言 此篇文章想写如何通过工具手查导出表、PE文件代码编程过程中的原理。文笔不是很好,内容也是查阅了很多的资料后整合出来的。希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献。因为了解PE文件格式知识点对于逆向破解还是病毒分析都是很重要的,且基于对PE文件格式的深入理解还可以延伸出更
阅读全文
摘要:一开始就上手就逆向病毒还是挺困难的,总是感觉到自己的基础打得还不够扎实,所以重新对基础的反汇编知识再进行学习。 1 知识点 寄存器、栈的存储方式、反汇编指令、逻辑运算 1.1 寄存器 1.1.1 寄存器含义 EAX : 扩展累加寄存器 EBX : 扩展基址寄存器 ECX : 扩展计数寄存器 EDX
阅读全文
摘要:名词注释 System breakpoint:系统断点,OllyDbg用CreateProcessA加载DEBUG_ONLY_THIS_PROCESS参数执行,程序运行之后会触发一个INT13,在系统空间里。 Entry point of main module:主模块的入口点,即文件的入口点。 W
阅读全文
摘要:1、C++类代码的特点 寄存器ECX传参时一般用作this指针(对象地址)或是计数器。 有ecx传参的call,是成员函数,构造函数,析构函数 能访问成员变量的函数都会有ecx传参 静态函数、全局函数无ecx(this指针) 返回值 寄存器eax一般用作返回值 识别构造函数的OD反汇编代码 特点:
阅读全文
摘要:前言 很多网站下载出来的游戏很多都在启动游戏添加了广告程序,A广告嵌套B广告,再由B广告启动游戏。广告启动后关掉广告窗口,游戏也会被关掉,还会弹出一个网页广告。并且知道游戏的主要程序名后也无法打开游戏,因为游戏的PE文件被修改了,无法正常打开主游戏文件。 工具 小生我怕怕版本OD 收集信息 分析广告
阅读全文
摘要:循环 vc++使用三种语法来完成循环结构,分别为do..while,while,for。虽然完成的功能都是循环,但是每种语法有着不同的执行流程。 do..while循环:先执行循环体,后比较判断。 while循环:先比较判断,后执行循环体。 for循环:先初始化,再比较判断,最后执行循环体。 逆向前
阅读全文