对于UPX脱壳的解决


(upx学习ing,不定期更新一些自己遇到的一些关于此的比较好的题目或者感悟)

对于手动脱壳,我们有两种常用的安全工具,一个是od,另一个是ida。两个方法略有不同。对于脱一般的程序壳的时候,我主要用的是ida来脱壳,一般ida实在脱不了了再想到用od来脱,od,,所以我记录的大多都是用的ida来脱的。

大致步骤

1、寻找oep

因为我们的壳经过运行之后,会慢慢的自动解开壳,我们就要去寻找解开后的那个时候的程序入口。而oep就是程序的入口。

2、寻找到加密函数

找到oep之后,运行下来,我们的程序就出来了。我们就可以去寻找了。string里面去寻找字符串,然后再跳到函数里面,去就可以直接分析了。

3、dump与修复

有些时候,可能我们要将程序剥离出来,这个时候就在oep口的地方将全部程序dump出来即可,dump出来之后还要进行修复文件,因为它的程序地址那些会发生改变,因此我们需要修复IAT。

对于脱壳运用最多的方法,一个是单步调试法,另一个就是ESP定律来脱壳

单步调试法

正如其名,单步调试法就是进行动态调试文件,分析汇编指令,找到关键点,寻找oep

esp定律(堆栈平衡)

由于我们壳会在内存中还原程序,然后再运行,则必然会跳到oep(程序入口),执行我们的程序。所以大致过程就是运行壳程序解壳,然后退出解壳程序,加载原本程序。有着壳程序的运行与退出,根据堆栈平衡原理,壳的加载与退出后,必然会操作堆栈指针为进入之前的堆栈指针。因此根据这个原理,我们可以在堆栈处,设置访问断点,让程序运行,当程序暂停的时候,就是壳程序即将执行完的时候,然后在其附近单步跟踪就可以找到原始OEP了。

UPX

题目一:

链接:https://pan.baidu.com/s/1teQgV5kgKpuNJ60o0byYVg?pwd=j8mj

提取码:j8mj

单步调试法

在这里插入图片描述

这个jmp非常可疑(一般那种jmp有大跳转就要注意),我们在这里按下f2 下断点,运行之后,按f7跟入。
在这里插入图片描述

到这里大致就可以猜出我们找对了。

按f8,运行到 jmp,f7跟入

在这里插入图片描述

到这里就差不多知道找到oep了,由于这样ida没有将它分析出来,我们按p,将其分析出来

在这里插入图片描述

进行反汇编之后发现看不懂,也没有找到我们的函数。这里有两个方法,一个就是单步,直到程序等待输入,另一个方法就是直接去string中搜索,字符串。我运用的是第二种。

在这里插入图片描述

在这里插入图片描述

按键盘上的X快捷键。
查询交叉引用就可以找到我们的加密函数,按f5反汇编即可。在这里插入图片描述
然后进行分析即可。

题目二

链接:https://pan.baidu.com/s/1_e_A7gJow71q4s8KYs0JfQ?pwd=fycv

提取码:fycv

直接在程序的第一条指令上下一个断点。然后运行,寻找可疑点。
在这里插入图片描述

指令的最后有个retn,这里我们按f4运行到此处,再按f7跟入在这里插入图片描述
进入之后,一直翻到后面,发现最后的jmp,我们继续像先前一样,f4,f7跟入。

在这里插入图片描述

在这里插入图片描述

继续重复上面步骤。

在这里插入图片描述

继续

在这里插入图片描述

继续

在这里插入图片描述

在这里插入图片描述
-在这里插入图片描述
跟到了这里我们就大致可以知道了,我们马上成功了,我们找到了oep。继续

在这里插入图片描述

到这里之后按p分析,就成了现在的样子,到这里就找到了我们的oep了。

在这里插入图片描述

反汇编(F5)后进入如下函数
在这里插入图片描述

在这里按c,再按p,再反汇编就可以得到我们的加密函数了
在这里插入图片描述
成功
在这里插入图片描述


通过这两到题,我们大致可以发现,upx脱壳,就是去寻找可疑点,jmp,或者ret,因为壳是一个程序,因此我们脱壳就是要其运行完成的结果,所以我们在脱壳过程中总是要跳到ret,也就是这个原因。最后到oep的时候也很有特点,多脱几次就有感觉了。

最近做了一道NKCTF关于UPX的题

头一次遇到,upx的另一种考点,将upx的头部抹去,使得我们的脱壳软件不能脱去。
关于upx文件头的抹除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352861.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Linux4.9 Tomcat部署及优化

文章目录 计算机系统5G云计算第六章 LINUX Tomcat部署及优化一、Tomcat概述1.Tomcat核心组件2.什么是 servlet3.什么是 JSP4.Tomcat 功能组件结构5.Container 结构分析6.Tomcat 请求过程7. 配置文件 二、Tomcat 服务部署1.关闭防火墙,将安装 Tomcat 所需软件包传到/…

elf 变异upx 脱壳

题目 是某ctf题 首先使用IDA打开: 函数极少,有壳。 查看函数 这个跳转比较可疑 下面进行IDA动态调试 进入loc_52D516 再进入 直到找到jmp r13 运行到这里,F8跳转 直接retn下断点F9,直接retn下断点F9重复, 直到…

upx手动脱壳

工具 upx:upx是一个开源的压缩壳工具,可以到github下载upxStudy_PE工具,可以到看雪论坛下载 upx简单的用法 upx src.exe命令将src.exe加壳 upx src.exe -o dst.exe命令将src.exe加壳并另存为dst.exe upx手动脱壳 脱壳原理 平衡堆栈法(又…

upx脱壳教程(buuctf逆向题新年快乐)

upx脱壳 脱壳教程步骤:工具: 实际操作OEP导出内存文件(dump)修复 题目链接 脱壳教程 步骤: 1.找到OEP 2.导出内存文件(dump) 3.修复 工具: 吾爱破解OD x32dbg/x64dbg 实际操作 …

微信小程序开发之云函数本地调试

环境 微信开发者工具 Stable 1.06.2303220云开发控制台 v1.5.47 简介 微信云开发提供了云函数本地调试功能,在本地提供了一套与线上一致的 Node.js 云函数运行环境,让开发者可以在本地对云函数调试: 在本地调试时,可以设置断点…

全面的软件测试

1 全过程的软件测试图解 传统的软件测试,开发人员完成任务之后,最后交付给测试人员,这种模式下,测试人员不能及早发现需求阶段的缺陷,同时测试工作的开展也滞后了,产品质量得不到有效的过程控制和分析&…

List of USB ID's

为什么80%的码农都做不了架构师&#xff1f;>>> # # List of USB IDs # # Maintained by Stephen J. Gowdy <linux.usb.idsgmail.com> # If you have any new entries, please submit them via # http://www.linux-usb.org/usb-ids.html # or send entries a…

FastAPi上传文件报错,There was an error parsing the body

问题描述 通过postman调用fastapi编写的文件接口报错&#xff0c;如下图&#xff1a; {"detail": "There was an error parsing the body" } 问题的解决过程 postman本身的问题 postman有个work directory的概念&#xff0c;所以再使用postman上传的文…

Arm NN 成功适配 openEuler Embedded,提供高性能神经网络推理能力

近期&#xff0c;RISC-V SIG 完成了 Arm NN 在 openEuler Embedded 系统的适配&#xff0c;于 2023 年 1 月合入系统构建工程代码库&#xff0c;经测试验证可用&#xff0c;实现了神经网络加速库在 openEuler Embedded 嵌入式系统上的加速和优化。 系统构建工程下载地址&#x…

【数据结构】--单链表力扣面试题⑥链表的回文结构

题述&#xff1a;对于一个链表&#xff0c;请设计一个时间复杂度为o(n),额外空间复杂度为o(1)的算法&#xff0c;判断其是否为回文结构。给定一个链表的头指针A&#xff0c;请返回一个bool值&#xff0c;代表其是否为回文结构。保证链表长度<900 测试样例&#xff1a; 输入…

中医养生APP小程序开发 了解传统文化传承医学经典

中国文化博大精深&#xff0c;中国传统文化更是历史久远&#xff0c;一直到几千年后的今天很多传统文化依然对我们现在的生活有着重大的影响&#xff0c;比如中医。随着人们对健康关注度的提高&#xff0c;很多人把目光投向了追本溯源的中医上&#xff0c;企图通过中医养生达到…

还原SQL Server 2008备份到另一台设备上

打开”SQL Server Management Studio“菜单&#xff0c;右击数据库&#xff0c;选择“还原数据库”&#xff1a; 设置目标目标数据库的名称和选择数据库备份文件的位置&#xff1a; 在"选项"页中&#xff0c;更改数据文件的还原路径为新的位置 &#xff0c;这里…

墨天轮专访TDengine陶建辉:坚持做难而正确的事,三次创业成就不悔人生

导读&#xff1a; 时序数据库&#xff08;Time Series Database&#xff09;在最近几年被越来越多的用户接受并使用&#xff0c;并有广泛的应用场景。云原生时序数据库 TDengine 一直稳居墨天轮时序数据库榜首&#xff0c;其近期的海外发展也初见成效。本期&#xff0c;墨天轮技…

清除 挖矿脚本 攻击

清除 挖矿脚本 攻击 1.查看系统进程,是否有异常: top 发现CPU占用率200%&#xff0c;判定服务器已经被植入木马 2.查看异常进程是哪一个程序造成的 ls -al /proc/14618 发现恶意程序&#xff08;绿色的是可执行文件&#xff09;/etc/lafy 3.删除恶意程序 cd /etc rm -rf …

记一次挖矿病毒应急处置全过程挖矿处置基本操作

记一次挖矿病毒应急处置全过程&挖矿处置基本操作 一、处置过程1.查看第一位的pid号&#xff1a;325352.进入/tmp/.X11-unix目录&#xff0c;其中11文件中写的是32535,01文件中写的是守护进程pid号10092&#xff08;目录里的文件不一定相同&#xff09;。将整个目录删除3.cr…

操作系统复习2.3.2-临界区的软件硬件实现方法

软件实现方法 思想 在进入区设置并检查一些标志来得知是否有进程已经在临界区&#xff0c;有则循环检查等待&#xff0c;无则直接进入&#xff0c;进程进入/离开临界区时修改标志 单标志法 通过标记进程号来实现控制只有一个进程能够进行临界区&#xff0c;但会出现P0进程进…

挖矿木马分析之肉鸡竟是我自己

之前服务器总是有一些异地登陆的告警信息&#xff0c;用代理就会这样&#xff0c;自己也没太在意。今天偶然间打开一看&#xff0c;发现如下提示&#xff01; 接下来处理一下&#xff01; 收集信息 finalshell登陆发现CPU占用率为100%ps auxw|head -1;ps auxw|sort -rn -k3|h…

电脑是否中挖矿病毒

『壹』 怎么检查自己电脑有没有被人用来挖矿&#xff0c;比特币 挖矿都是烧的显卡&#xff0c;以下方法可以鉴定自己显卡是不是矿卡 1&#xff1a;通过肉眼来识别这个硬件究竟是不是矿卡 &#xff0c;其实通过其他方式也可以测出&#xff0c;就比如说你到电脑里面去测矿卡的超…

诺顿360偷偷挖矿被怒喷 官方却说:都是为了用户好

杀毒软件诺顿360居然偷偷往电脑里装挖矿软件&#xff1f; 2022年刚开始&#xff0c;一位47万粉的“大V”在Twitter上就爆出了安全领域的猛料&#xff0c;还用f开头的单词亲切问候了软件厂商。 要知道&#xff0c;诺顿360可是在无数官推民选的排行榜中常年名列前茅&#xff0c;…

ETH挖矿显卡算力大全

大家买显卡挖ETH&#xff0c;肯定最关心算力了&#xff0c;这里我整理一版&#xff0c;供大家参考&#xff0c;目前只有主流的整理上了&#xff0c;后期会完善更多的供大家参考&#xff01; 欢迎大家加入大力矿工群&#xff1a;621159725 软件下载&#xff1a;百度云盘链接…