CTF - RE之IDA简单使用

admin 2023年1月17日19:06:15评论513 views字数 767阅读2分33秒阅读模式

函数搜索

查找main函数,在函数窗口Ctrl+F,搜索main

CTF - RE之IDA简单使用

字符串搜索

IDA 中有一个窗口叫做【字符串表】 该表收集了程序中所有字符串。

View => Open SubViews => Strings

CTF - RE之IDA简单使用

CTF - RE之IDA简单使用

进入保存该字符串的数据区域

双击搜索到的字符串

【1】是内存地址

【2】是IDA 为该地址对应数据取的一个标识符(或者理解成变量名)

【3】则是该内存对应的数据。

CTF - RE之IDA简单使用

跳转到引用该字符串的代码

【右键】选择【 Jump to xref 】或 选中 aHiCtferInputYo 后直接按下快捷键【X】

CTF - RE之IDA简单使用

会显示汇编窗口,两种形式,

图标视图

CTF - RE之IDA简单使用

文本视图

CTF - RE之IDA简单使用

转换汇编代码为伪代码

转换伪代码方法: 在这段代码任意位置按下 Tab 键 或 F5 键

CTF - RE之IDA简单使用


代码修复

函数名修复

选中函数右键Rename Global item或者快捷键N

CTF - RE之IDA简单使用

返回值

判断函数的返回值是否有意义。查找一下函数的所有交叉引用,确保这个函数每一处调用都用不到返回值

CTF - RE之IDA简单使用

点击函数名,按下Y 键,将函数的返回值类型修改为void(也可以直接按下V键)

CTF - RE之IDA简单使用

变量类型

根据上下文信息判断参数或者变量的类型, 在标识符上按下Y 键,输入对应的类型

CTF - RE之IDA简单使用

数组实体

CTF - RE之IDA简单使用

第一个元素地址处,右键,Array => Array element size 表示一个元素的大小,ArraySize 表示数组大小,根据上下文分析,dword_404040的元素大小为4字节,

数组长度为 32Array element size 可以通过调节第一个元素的大小来调整。在第一个元素地址上按下d 键切换大小。

CTF - RE之IDA简单使用

CTF - RE之IDA简单使用

修复后,元素数据以4字节整数解析,更加直观。

CTF - RE之IDA简单使用

Debug

本地调试

选择调试器"Local Windows debugger"

CTF - RE之IDA简单使用

Start process

CTF - RE之IDA简单使用

反调试绕过

CTF - RE之IDA简单使用

查看交叉引用,全局使用了一次

CTF - RE之IDA简单使用

在反调试函数后代码中加断点,先运行程序,在"Attach to process"选择进程,

CTF - RE之IDA简单使用


原文始发于微信公众号(仙友道):CTF - RE之IDA简单使用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月17日19:06:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CTF - RE之IDA简单使用http://cn-sec.com/archives/1427701.html

发表评论

匿名网友 填写信息