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

攻防世界——echo-server(花指令)

查壳 elf Ubuntu系统写的用kali运行会报错找到主函数双击进入loc_80487C1不是很懂看了大佬的说是花指令常见的花指令机器码9A,E8,E9,EB 把垃圾数据用nop(0x90h)填充切换到汇编试图将loc_80487C1右键转换成未定义的数据对loc_80487C4进行c重新汇编这时是main函数变成loc_80487C4了loc_80487c1-c3的汇编代码ida把它识别到sub_804875D函数结尾处设计该函数的sp堆栈平衡08487C1 E8 根据上面常见的花指令可知它就是插入的花指令用来混淆ida反编译将text08487C2右键转换为代码08487C2 的c9转换成代码leave 08487C2 的c3转换成代码retn然后再把E8改为90nop选中 08487C1 E8 编辑-补丁程序-补丁字节将E8改成90把修补的程序应到输入文件才能把修改保存到原文件第二个花指令混淆080487F3发现明显的花指令特征jmp 函数名1这个时候080487F3 E8是无意义的右键.text:080487F3 EB FF将他们转换成未定义的数据从而将他们分开同上把它改成0x90右键.text:080487F4这行从这开始转化为代码快捷键C数据被识别成了正确的汇编代码且出现了开始我们看到的字符串“You are very close! Now patch me~”但是flg没有出现第三个花指令混淆08048816看汇编区域这两个标红的代码.text:08048816 E9 46 31 40 67 jmp near ptr 6F44B961h;.text:08048859 E8 C7 04 24 01 call near ptr 9288D25h;其实是IDA自动识别异常的代码将它转换成未定义的数据按U未定义就可以看到flgida把它识别成了代码接下来注意这两行代码这里xor eax eax jz是必定执行的会跳转到loc_804881C1而下面代码是loc_804881C将04048816 E9 改为0x90再把flg转化成字符串快捷键A然后点击.text:0804881D转换为代码这样IDA就会从.text:0804881D开始识别代码下面的代码都变成了正确的可读性更好的汇编代码下面的strncmp比较flg和我们输入的函数正确的话输出“You are very close! Now patch me~”从别人那里拿过来的(嘿嘿)现在离得到flag很近了接着看第四个花指令08048859这里主要看这三个函数看数据段的常量dword_8048A088的值ZF(ZeroFlag零标志位)在test函数里面test的结果1ZF0test eaxeax 只有eax0时ZF1其他不为0时ZF0按ctrlx交叉引用发现这个数据只用了一次main函数里为1eax1这里ZF0下面jz short loc_8048866函数不执行接着看loc_8048851后面的汇编这三个代码有问题.text:08048851 loc_8048851:.text:08048851 ; CODE XREF: .text:08048857↓j.text:08048851 66 B8 EB 05 mov ax, 5EBh.text:08048855 31 C0 xor eax, eax; Logical Exclusive OR.text:08048857 74 F9 jz short near ptr loc_80488511;mov ax, 5EBh后ax5EBh之后xor eax, eax结果eax0置ZF1最后jz short near ptr loc_80488511跳转到loc_8048852一直重复这个过程。就是开始我们在运行程序输入正确的字符串后F1gA看到的程序一直在运行。这里也有一句标红IDA识别异常的代码将0848859 E8改成90现在代码正常了接下来修改这里的跳转将jz换成jmp或者把74换成EB没有Ubuntu系统从大佬那里弄过来的得到flagF8C60EB40BF66919A77C4BD88D45DEF4

相关文章:

攻防世界——echo-server(花指令)

查壳 elf Ubuntu系统写的,用kali运行会报错找到主函数,双击进入loc_80487C1不是很懂,看了大佬的说是花指令常见的花指令机器码 9A,E8,E9,EB 把垃圾数据用nop(0x90h)填充切换到汇编试图将loc_80487C1右键转换成未定义的数据对loc_80487C4进行c…...

人机协同中的“因为-所以”、“if-then”(如果-那么)

在人机协同中,“因为-所以”和“if-then”(如果-那么)是两种截然不同但紧密相关的逻辑范式。简单来说,“if-then”是机器的“计算”语言,而“因为-所以”是人类“算计(谋算)”与因果推理的核心。…...

手把手教你移植μGUI到STM32F103:一个文件搞定单片机图形界面

从零构建STM32图形界面:μGUI移植实战指南 在嵌入式开发中,图形用户界面(GUI)的实现往往令人望而生畏。市面上虽然有诸多成熟的GUI解决方案,但对于资源有限的STM32F103系列单片机来说,轻量级的μGUI无疑是一个理想选择。本文将带…...

ADAU1701的隐藏玩法:不写代码,用SigmaStudio模块库实现5.1虚拟环绕和动态低音

ADAU1701音效魔法:零代码打造虚拟环绕与智能低音系统 在追求极致音效体验的今天,专业级音频处理不再是大型音响厂商的专利。借助ADAU1701这颗强大的音频DSP芯片和SigmaStudio图形化开发环境,即使没有任何DSP编程经验的开发者,也能…...

从PI到PR:静止坐标系下永磁同步电机电流控制的新范式

1. 永磁同步电机控制的痛点与变革 每次调试永磁同步电机(PMSM)时,最让人头疼的就是参数漂移问题。记得去年做伺服系统项目,电机运行半小时后电流波形就开始畸变——电感值因温升变化了15%,导致PI控制器输出的d轴电流出…...

C加加开发者如何通过Taotoken快速接入多模型API服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 C开发者如何通过Taotoken快速接入多模型API服务 1. 场景与需求 在C后端服务中集成大模型能力时,开发者常面临几个实际…...

从PCB布线到外壳开孔:一个智能硬件产品的EMC设计避坑全记录

从PCB布线到外壳开孔:一个智能硬件产品的EMC设计避坑全记录 在智能硬件产品的研发过程中,电磁兼容性(EMC)设计往往是决定产品能否顺利通过认证测试的关键因素。作为一名经历过多次EMC整改的硬件工程师,我想通过一个真实…...

开源本地AI API网关:统一管理Ollama等模型,简化LLM应用开发

1. 项目概述:一个开源的本地AI API网关最近在折腾本地大语言模型(LLM)的朋友,估计都遇到过类似的烦恼:模型装好了,界面也跑起来了,但想把它集成到自己的应用里,或者想用一套统一的接…...

uni-app安卓云打包实战:三种证书方案详解与避坑指南

1. 为什么需要关注安卓打包证书? 第一次接触uni-app安卓云打包的开发者,往往会在证书选择环节卡壳。我自己刚入门时也踩过坑——用测试证书打了包,结果应用商店审核被拒,白白浪费两周时间。证书不仅是APK的"身份证"&…...

macOS开发环境标准化实践:基于Homebrew的CUR环境构建

1. 项目概述与核心价值最近在折腾macOS开发环境,尤其是涉及到一些需要特定编译工具链的项目时,经常被各种依赖和版本问题搞得焦头烂额。相信很多从Linux或Windows转过来的开发者都有同感,macOS虽然优雅,但在某些底层开发工具的生态…...

别再折腾LibreOffice了!CentOS 7.9上老牌Apache OpenOffice 4.1.14的完整部署与后台服务化指南

在CentOS 7.9上部署Apache OpenOffice 4.1.14作为无头文档处理服务的完整指南 对于需要在Linux服务器上搭建稳定文档处理服务的运维和开发人员来说,Apache OpenOffice仍然是一个值得考虑的选择。尽管LibreOffice在功能和社区支持上更为活跃,但在某些特定…...

动态路由协议与BGP路径属性:网络工程师的核心必修课

1. 从“路标”到“地图”:动态路由协议的核心价值 在网络世界里,路由器就像一个个十字路口的交通警察。如果每个路口都需要手动设置去往所有目的地的路牌,那不仅工作量巨大,一旦某条路临时施工或封闭,整个城市的交通都…...

大语言模型角色扮演技术:从原理到实践的完整指南

1. 项目概述:当大语言模型学会“扮演”角色最近在GitHub上看到一个挺有意思的项目,叫“awesome-llm-role-playing-with-persona”。光看名字,你大概能猜到它和大型语言模型以及角色扮演有关。简单来说,这个项目整理了一个资源列表…...

如何彻底解决Windows电脑自动锁屏问题:终极鼠标模拟工具使用指南

如何彻底解决Windows电脑自动锁屏问题:终极鼠标模拟工具使用指南 【免费下载链接】mousejiggler Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer back and f…...

HFSS扫频实战:三种扫频类型的选择策略与性能对比

1. HFSS扫频分析基础:为什么需要扫频? 刚接触HFSS仿真时,很多工程师都会疑惑:为什么不能直接计算目标频点的S参数?这个问题就像用相机拍照——单点频率仿真相当于只拍一张静态照片,而扫频分析则是录制一段视…...

PowerVR Series2NX NNA架构解析:终端AI加速器的能效与工程实践

1. 项目概述:从“看得见”到“看得懂”的芯片革命在移动设备、智能摄像头乃至汽车座舱里,我们早已习惯了人脸解锁、实时美颜、物体识别这些功能。这些功能背后,都离不开一个核心引擎:神经网络加速器。今天要聊的,就是I…...

从赛博朋克到量子有机体,未来主义风格演进全图谱,深度解析MJ 5.2→6.2→NijiV6的渲染范式跃迁

更多请点击: https://intelliparadigm.com 第一章:赛博朋克到量子有机体:未来主义视觉范式的哲学跃迁 当霓虹雨巷中的义体少女凝视全息广告牌,她瞳孔倒映的已不仅是资本编码的欲望图景,而是意识与拓扑量子态耦合的初始…...

NocoDB企业数据管理平台:如何用可视化数据库解决业务协作难题

NocoDB企业数据管理平台:如何用可视化数据库解决业务协作难题 【免费下载链接】nocodb 🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative 项目地址: https://gitcode.com/GitHub_Trending/no/nocodb 在数字化转型…...

别再手动写CSS了!用Vue3 + Tailwind CSS 5分钟搞定一个响应式卡片组件

用Vue3与Tailwind CSS极速构建响应式卡片组件的实战指南 前端开发领域正在经历一场效率革命。过去需要数小时才能完成的UI组件开发,如今借助现代工具链可以在几分钟内实现。本文将带你体验如何通过Vue3的单文件组件特性与Tailwind CSS的实用优先(Utility-First)方法…...

别再只盯着动态功耗了!聊聊CMOS数字电路里那个容易被忽略的‘小透明’——静态功耗

别再只盯着动态功耗了!聊聊CMOS数字电路里那个容易被忽略的‘小透明’——静态功耗 在数字电路设计的课堂上,我们总是反复强调动态功耗的计算与优化——开关电容充放电、时钟门控、频率缩放,这些概念几乎成了低功耗设计的代名词。但当你真正打…...

终极指南:如何一键将小米智能家居全面接入HomeAssistant

终极指南:如何一键将小米智能家居全面接入HomeAssistant 【免费下载链接】hass-xiaomi-miot Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices. 小米米家智能家居设备接入Hass集成 项目地址: https:/…...

基于ReAct范式的链式追踪工具:提升学术研究效率的AI智能体实践

1. 项目概述与核心价值如果你经常需要做文献调研、追踪某个科学概念的源头,或者想搞清楚一个复杂话题背后的证据链,那你一定体会过在搜索引擎和无数个学术网站之间反复横跳的痛苦。传统的搜索方式,比如在Google Scholar里输入一个关键词&…...

AI圈大事!网友:太离谱了~

最近技术圈友发生了件大事:今年 2 月刚刚开源的 Hermes Agent,GitHub star 数已超过 106k。有些同学可能还不太了解,我们先来说说 Hermes 是什么。它不是简单的聊天机器人,是能自己做事、会学习、越用越聪明的数字员工。为啥能火成…...

GroundingDINO SwinT与SwinB配置实战对比:零样本目标检测的架构选择策略

GroundingDINO SwinT与SwinB配置实战对比:零样本目标检测的架构选择策略 【免费下载链接】GroundingDINO [ECCV 2024] Official implementation of the paper "Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection"…...

书匠策AI官网www.shujiangce.com|别再硬扛了!这个AI把写期刊论文变成了“填空题“

微信公众号搜一搜「书匠策AI」,三分钟治好你的论文拖延症! 各位还在深夜对着Word文档发呆的同学们,今天我不讲道理,只讲工具。 你们有没有想过一个问题:为什么写期刊论文这件事,让90%的人觉得痛苦&#xf…...

书匠策AI实测科普:一篇毕业论文从“零“到“交稿“,AI到底在背后替你跑了哪几圈?

🔬 本文不吹不黑,用最朴素的语言,把书匠策AI的毕业论文功能给你"拆成零件"看一遍。微信公众号搜一搜书匠策AI,官网 官网直达:www.shujiangce.com,先收藏再说。 各位还在和毕业论文"肉搏&quo…...

5G随机接入第一步:用Matlab手把手仿真ZC序列的preamble检测(附完整代码)

5G随机接入第一步:用Matlab手把手仿真ZC序列的preamble检测(附完整代码) 在5G NR系统中,随机接入过程是终端设备与基站建立连接的关键第一步。而其中ZC序列作为preamble的核心组成部分,其特性直接决定了随机接入的性能…...

开源GA数据代理:安全高效获取Google Analytics数据的工程实践

1. 项目概述:一个开源的Google Analytics数据代理 如果你正在开发一个需要接入Google Analytics(GA)数据的应用,无论是内部的数据看板、营销分析工具,还是客户报告系统,你大概率都遇到过同一个难题&#x…...

别再手动整理PDF了!用Zotero+坚果云打造你的免费文献同步工作流

Zotero与坚果云联动:构建无缝文献管理生态系统的终极指南 科研工作者和学生群体常面临一个普遍困境:如何在多台设备间高效同步和管理海量文献资料?传统的手动复制粘贴或依赖收费云服务不仅效率低下,还存在版本混乱的风险。本文将深…...

基于RT-Thread与N32G457的三通道UART透明监控网关设计与实现

1. 项目概述与核心需求解析在嵌入式开发,特别是涉及工业控制、智能硬件或者多设备联调的现场,我们经常会遇到一个非常实际的痛点:如何在不干扰原有通信链路的前提下,实时监控两台设备之间的串口数据交互。无论是调试新的通信协议&…...