当前位置: 首页 > news >正文

IDA Pro基本使用

IDA Pro基本使用

1.DllMain的地址是什么?

打开默认在的位置1000D02E就是DllMain地址
在这里插入图片描述
空格键可以看到图形化界面选择options、general勾选对应的选项在图像化也能看到
在这里插入图片描述

2.使用Imports 窗口并浏览到 gethostbyname,导入函数定位到什么地址?

这里可以打开Imports 窗口
在这里插入图片描述
默认已经打开 找到对应的函数gethostbyname
在这里插入图片描述

双击进去可以看到对应的地址 idata:100163CC
在这里插入图片描述

3.有多少函数调用了gethostbyname?

点击函数位置快捷键ctrl+x打开 其中type为p的为调用函数一共5个不同函数调用
在这里插入图片描述

4.将精力集中在位于0x10001757处的对 gethostbyname 的调用,你能找出哪个 DNS请求将被触?

按G键跳转到对应的位置0x10001757
在这里插入图片描述

函数调用前将eax参数push进栈,而pics.praticalmalwareanalys是对应的内容
add eax,0dh,是跳过前面[This is RDO]部分,将指针指向pics.praticalmalwareanalys
在这里插入图片描述

5&6.IDA Pro 识别了在 0x10001656处的子过程中的多少个局部变量和参数

跳转到对应位置,往上看,发现一共有23个局部变量,1个参数
在这里插入图片描述

7.使用 Strings 窗口,来在反汇编中定位字符串\cmd.exe /c。它位于哪?

在String窗口找到对应字符串\cmd.exe /c
在这里插入图片描述
双击找到对应的位置为xdoors_d:10095B34
在这里插入图片描述

8.在引用\cmd.exe /c区域内发生了什么

点击上键头可以看到引用的字符串的地方
在这里插入图片描述
往上看发现字符串, 并发现远程shell相关的字符串Remote Shell Session ,说明这个与远程控制相关
在这里插入图片描述
在这里插入图片描述
同时往下看发现一系列的命令相关,还是调用recv函数
在这里插入图片描述

9.在同样的区域,在 0x100101C8 处,看起来好像 dword 1008E5C4是一个全局变量,它帮助决定走哪条路径。那恶意代码是如何设置dword1008E5C4的呢?(提示:使用dword 1808E5C4的交叉引用)

按住G找到对应位置

在这里插入图片描述
双击进入,使用ctrl+x交叉引用找到影响这个全局变量的位置
在这里插入图片描述
进入,发现受eax变量影响,其中eax又是 call sub_10003695返回值
在这里插入图片描述
点击进入函数,发现这个函数调用的是GetVersionExA函数,然后验证平台是否是win32平台并返回
在这里插入图片描述

10.在位于0x1000FF58处的子过程中的几百行指令中,一系列使用memcmp 来比较字符串的比较。如果对robotwork的字符串比较是成功的(当memcmp返回0),会发生什么?

当memcmp返回0调用call函数

访问注册表相应的位置
在这里插入图片描述

并将对应位置的东西通过send函数发送出去
在这里插入图片描述

11.PSLIST 导出函数做了什么?

主要是获取进程列表并进行下一步操纵。
在这里插入图片描述
在图像化界面分析,
在这里插入图片描述
进入到call sub_100036C3函数
获取版本信息并判断是否是win32平台
在这里插入图片描述
查看当前版本是vista以上,大于5是以上版本
在这里插入图片描述
继续分析左边分支
在这里插入图片描述
发现调用CreateToolhelp32Snapshot,获取系统进程或线程列表
在这里插入图片描述

12.使用图模式来绘制出对sub10004E79的交叉引用图。当进入这个函数时,哪个API函数可能被调用?仅仅基于这些API函数,你会如何重命名这个函数?

双击函数,然后选择图,交叉引用图
在这里插入图片描述
主要调用获取操作系统信息并发送走
在这里插入图片描述
右键编辑实现给函数改名
在这里插入图片描述

13.D1lMain 直接调用了多少个 Windows API?多少个在深度为2时被调用?

和上一步一样,不过深度改为2,可以看到具体调用
在这里插入图片描述
在这里插入图片描述

14.在0x10001358处,有一个对Sleep(一个使用一个包含要睡眠的毫秒数的参数的API函数)的调用。顺着代码向后看,如果这段代码执行,这个程序会睡眠多久?

跳转到sleep函数位置
在这里插入图片描述
eax值影响,首先获取30然后乘以1000最后是30000ms,也就是30s
在这里插入图片描述

15.在0x10001701处是一个对socket的调用。它的3个参数是什么?

对应三个参数
在这里插入图片描述

16.使用MSDN页面的socket和IDAPro中的命名符号常量,你能使参数更加有意义吗?在你应用了修改以后,参数是什么?

选中对应的数字,选择如下方式。
在这里插入图片描述

在这里插入图片描述

17.搜索in指令(opcode 8xED)的使用。这个指令和一个魔术字符串 VXh 用来进行 VMware 检测。这在这个恶意代码中被使用了吗?使用对执行in指令函数的交叉引用,能发现进一步检测VMware 的证据吗?

![!](https://i-blog.csdnimg.cn/direct/89c8489ea0ba428298a182a882c9fb7a.png)
找到对应in语句
在这里插入图片描述
点击进入
在这里插入图片描述
将eax值转化为可以理解的字符串,发现VMXH相关字符
在这里插入图片描述
按空格找到对应函数
在这里插入图片描述
使用ctrl+x找到交叉引用
在这里插入图片描述
进入到函数,发现有对虚拟机进行检测,如果检测到就不安装
在这里插入图片描述

18.将你的光标跳转到0x1001D988处,你发现了什么?

发现一连串乱码数字
在这里插入图片描述

19.如果你安装了IDA Python插件(包括IDAPro的商业版本的插件),运行Lab05-01.py,一个本书中随恶意代码提供的IDA ProPython脚本,(确定光标是在0x1001D988处。)在你运行这个脚本后发生了什么?

编写脚本decoded.idc内容如下:

#include <idc.idc>static main()
{auto ea =ScreenEA(),b,i,decoded_byte;for (i=0x0;i<0x50;i++){b=Byte(ea+i); decoded_byte = b ^ 0x55;PatchByte(ea+i,decoded_byte);}
}

将光标放在如下位置:
在这里插入图片描述
选择file --> script file -->选择对应文件
在这里插入图片描述
运行后字符串被转码
在这里插入图片描述

20.将光标放在同一位置,你如何将这个数据转成一个单一的ASCI 字符串?

通过键盘A键
在这里插入图片描述

相关文章:

IDA Pro基本使用

IDA Pro基本使用 1.DllMain的地址是什么? 打开默认在的位置1000D02E就是DllMain地址 按空格键可以看到图形化界面选择options、general勾选对应的选项在图像化也能看到 2.使用Imports 窗口并浏览到 gethostbyname&#xff0c;导入函数定位到什么地址? 这里可以打开Impo…...

Day.js时间插件的安装引用与常用方法大全

&#x1f680; 个人简介&#xff1a;某大型国企资深软件研发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…...

aws 容器镜像仓库操作

aws 容器镜像仓库产品叫ECR&#xff0c;官方文档参考&#xff1a;Amazon Elastic Container Registry。 1&#xff09;账号认证 # 配置aws命令 $ aws configure set aws_access_key_id ${ak} $ aws configure set aws_secret_access_key ${sk} 2&#xff09;镜像仓库登陆 #…...

学习记录:js算法(四十一): 基于时间的键值存储

文章目录 基于时间的键值存储网上思路 总结 基于时间的键值存储 设计一个基于时间的键值数据结构&#xff0c;该结构可以在不同时间戳存储对应同一个键的多个值&#xff0c;并针对特定时间戳检索键对应的值。 实现 TimeMap 类&#xff1a; TimeMap() 初始化数据结构对象void se…...

C语言 | Leetcode C语言题解之第424题替换后的最长重复字符

题目&#xff1a; 题解&#xff1a; int characterReplacement(char* s, int k) {int num[26];memset(num, 0, sizeof(num));int n strlen(s);int maxn 0;int left 0, right 0;while (right < n) {num[s[right] - A];maxn fmax(maxn, num[s[right] - A]);if (right - …...

大数据时代的PDF解析:技术与挑战

在大数据时代&#xff0c;海量信息以不同格式存储&#xff0c;其中 PDF 文件凭借其广泛应用成为了各种业务场景下的主要文档格式。无论是政府文件、企业报告&#xff0c;还是学术论文和技术文档&#xff0c;PDF 都是信息交流的重要媒介。然而&#xff0c;随着信息的爆炸式增长&…...

《nmap 命令全解析:网络探测与安全扫描的利器》

文章目录 一、引言二、nmap 命令概述三、nmap 基本用法&#xff08;一&#xff09;安装 nmap&#xff08;二&#xff09;简单扫描示例 四、nmap 常见参数&#xff08;一&#xff09;-sS&#xff08;TCP SYN 扫描&#xff09;&#xff08;二&#xff09;-sT&#xff08;TCP 连接…...

2024年华为OD机试真题-斗地主之顺子-Python-OD统一考试(E卷)

最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 每一题都含有详细的解题思路和代码注释,精选c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,持续跟新。 题目描述 在斗地主只扑克牌游戏中,…...

亲测有效,长期有效的RTSP流地址公网RTSP地址,各种类型的视频源

我们经常需要做一些实时视频流的测试&#xff0c;但是手边又没有办法及时弄到一个摄像机&#xff0c;我们经常会去搜索一下“公网RTSP地址”&#xff0c;但是大部分现在都失效了&#xff0c;有什么办法能够让我们快速构建一个RTSP流&#xff0c;点几下就能直接用&#xff1f; …...

Excel常用函数大全

Excel常用函数介绍与示例应用 在Excel中&#xff0c;函数是进行数据处理和分析的强大工具。对于新手来说&#xff0c;掌握一些基本的函数使用方法能够大大提升工作效率。以下是一份通俗易懂、适合新手的Excel函数使用方法总结&#xff1a; 1. 求和函数&#xff08;SUM&#x…...

领夹麦克风哪个品牌好,无线领夹麦克风品牌排名,麦克风品牌大全

无线领夹麦克风因其便携性和隐蔽性&#xff0c;越来越受到演讲者和表演者的青睐。但是&#xff0c;随着市场上品牌和型号的增多&#xff0c;质量也变得参差不齐。许多用户在选购时&#xff0c;会因为缺乏了解而选择到性能不佳的产品&#xff0c;影响声音的清晰度和稳定性。下面…...

【C语言零基础入门篇 - 15】:单链表

文章目录 单链表链表的基本概念单链表功能的实现单链表的初始化单链表新结点的创建单链表头插法单链表的输出单链表的查找单链表修改单链表的删除单链表所有数据结点释放源代码 单链表 链表的基本概念 一、什么是链表&#xff1f; 链表是数据结构中线性表的一种&#xff0c;其…...

Linux主流Web服务器:你选择哪一款?

在Linux环境下&#xff0c;选择Web服务器通常取决于特定需求、资源限制、以及对性能的期望。以下是对几款主流Linux Web服务器的详细分析&#xff1a; 1. Apache HTTP Server - 特点&#xff1a;Apache是功能最全面的Web服务器之一&#xff0c;支持模块化架构&#xff0c;拥…...

光耦知识分享:解读晶体管光耦主要性能指标

晶体管光耦是一种常用的光电耦合器&#xff0c;用于隔离和传输电信号&#xff0c;它包含有光电发射管和接收晶体管两个主要部分。解读晶体管光耦的主要指标有助于了解其性能和应用范围&#xff0c;主要指标包括&#xff1a; 最大工作电压&#xff08;V_R_MAX&#xff09;&…...

laravel public 目录获取

在Laravel框架中&#xff0c;public目录是用来存放公共资源的&#xff0c;如CSS、JS、图片等。你可以通过多种方式获取public目录的路径。 方法一&#xff1a;使用helper函数public_path() $path public_path(); 方法二&#xff1a;使用Request类 $path Request::root().…...

强化学习策略买卖股票的效果如何?

Github 项目&#xff1a; GitHub - daocodedao/stable-baselines-stock: 深度强化学习自动炒股 主体参考了 https://github.com/wangshub/RL-Stock&#xff0c;修改了一些 requirements 修改到新版本支持 macstable-baselines 改为 stable-baselines3 使用强化学习预测股价…...

Kotlin 基本介绍(一)

导读大纲 1.1.1 Kotlin 是安全的1.1.2 Kotlin 具有互操作性1.1.3 什么是 idiomatic Kotlin&#xff1f; 1.1.1 Kotlin 是安全的 一般来说,当我们说一种编程语言是安全的 我们指的是它的设计可以防止程序中出现某些类型的错误当然,这并不是绝对的;没有一种语言能防止所有可能出现…...

Cocos Creator发布Moloco平台试玩广告(PlayableAd)

官方文档 主要遇到了两点问题。 1.HTML文件内的body需要注入 <script>window.FBPlayableOnCTAClick () > {(typeof FbPlayableAd undefined) ? alert(FBPlayableAd.onCTAClick) : FbPlayableAd.onCTAClick()}</script> 2.跳转商店使用 window.parent.postM…...

七种修复错误:由于找不到msvcr110.dll 无法继续执行的方法

当你在运行某些程序时遇到“找不到msvcr110.dll”的错误提示&#xff0c;这通常意味着你的系统缺少了Microsoft Visual C 2012 Redistributable包中的一个重要文件。这个DLL文件是Microsoft Visual C Redistributable的一部分&#xff0c;用于支持许多使用Visual C编写的软件和…...

Python模拟鼠标轨迹[Python]

一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型&#xff0c;如直线或曲线路径。然而&#xff0c;这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现&#xff0c;能够通过深度学习技术&#xff0c;学习并模拟更自然的鼠标移动行为。 二.鼠标轨迹算法实…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...