使用IDA自带python patch的一道例题

news2024/9/28 15:20:28

首先看见就是迷宫

迷宫解出的路径,放在zip的文件可以得到一个硬编码

然后在原程序中,有一处很离谱

这个debugbreak就是IDA分析错误导致的

我们点进去发现里面全是nop

然后我们把我们得到的硬编码放在010里面,再用IDA打开

重新编译看汇编

你可以发现

这一段和nop里面的最后两段一样的

——————重点知识——————

我们随便打开一个调用函数的汇编

发现都有类似这三段的操作

这是什么意思呢?

问了下我的师傅——

这是关于栈的操作,先将当前的栈记录一下,放在ebp里面

然后mov 保存一下当前栈的操作,最后对栈底进行操作,(因为栈是下面先出)

(不同位数的操作可能不一样,但是都是这个道理)

————————————————

那么我们看debugbreak那里,

他多了一个add(这是减去栈后,回复栈的操作,我们直接nop掉)

然后加上这两段的汇编 55 8b ec

IDA内部python patch一下

be = 0x00401A20
en = 0x00401A5E 
a=[0x55,0x8b,0xec,0X90,0X83,0XEC,0X18,0X8B,0XCC,0X89,0XA5,0X48,0XFF,0XFF,0XFF,0X8D,0X95,0X74,
0XFF,0XFF,0XFF,0X52,0XE8,0X26,0X04,0X00,0X00,0XE8,0XD1,0XF9,0XFF,0XFF,0X83,
0XC4,0X18,0X88,0X85,0X67,0XFF,0XFF,0XFF,0X8A,0X85,0X67,0XFF,0XFF,0XFF,0X88,
0X85,0X73,0XFF,0XFF,0XFF,0X0F,0XB6,0X8D,0X73,0XFF,0XFF,0XFF,0X85,0XC9,
]
for i in range(be,en):
patch_byte(i,a[i-be])

然后我们就可以看见正确的函数了

因为最后监测v13

我们直接跟进v13的sub401411

首先这个unknowwn函数,==24?一看就觉得是len

然后下面是一个四个一组的异或操作

这个sub肯定就是取数组了

像这种~ 就是释放空间的操作

retunrn v10, v10=v11

v11

有个函数

跟进去看一下

居然有数据!我们前面一直没拿到数据

姑且试一下,万一对了呢

a=[ 26,   0,   0,   0, 199,  69, 148,
   16,   0,   0,   0, 199,  69, 152,   0,   0,   0,
    0, 199,  69, 156,  67,   0,   0,   0, 199,  69,
  160,  12,   0,   0,   0, 199,  69, 164,  55,   0,
    0,   0, 199,  69, 168,  35,   0,   0,   0, 199,
   69, 172,  99,   0,   0,   0, 199,  69, 176,  97,
    0,   0,   0, 199,  69, 180,  64,   0,   0,   0,
  199,  69, 184,   5,   0,   0,   0, 199,  69, 188,
  100,   0,   0,   0, 199,  69, 192,   7,   0,   0,
    0, 199,  69, 196,   6,   0,   0,   0, 199,  69,
  200,  54,   0,   0,   0, 199,  69, 204,  81,   0,
    0,   0, 199,  69, 208,  55,   0,   0,   0, 199,
   69, 212,  53,   0,   0,   0, 199,  69, 216,   1,
    0,   0,   0, 199,  69, 220,  67,   0,   0,   0,
  199,  69, 224,  97,   0,   0,   0, 199,  69, 228,
   97,   0,   0,   0, 199,  69, 232,  92,   0,   0,
    0, 199,  69, 236, 125,   0,   0,   0]
b=[26, 16, 0, 67, 12, 55, 35, 99, 97, 64, 5, 100, 7, 6, 54, 81, 55, 53, 1, 67, 97, 97, 92, 125]
for i in range(0,24,4):
    b[i+2]=b[i+3]^b[i+2]
    b[i + 1] = b[i + 2] ^ b[i + 1]
    b[i] = b[i +1] ^ b[i]
for i in b:
    print(chr(i),end='')

出了!

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

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

相关文章

高性能运营级流媒体服务框架:支持多协议互转 | 开源日报 No.250

ZLMediaKit/ZLMediaKit Stars: 12.6k License: NOASSERTION ZLMediaKit 是一个基于 C11 的高性能运营级流媒体服务框架。 使用 C11 开发,避免裸指针,代码稳定可靠,性能优越。支持多种协议 (RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181 等…

JavaEE之线程(3)_线程的开始、中断、等待、休眠线程、线程的状态

前言 在本栏的上一节(https://blog.csdn.net/2301_80653026/article/details/138500558),我们重点讲解了五种不同的创建线程的方式,我们还介绍了Tread类的常见构造方法和常见属性,在这一节中我们将会继续介绍Tread类。…

5/11后面部分:+顺序排序+元素交换+计算每门课程的各种成绩+存放规律的数据 注意:一味的复制肯定要出问题,第2个的最后一部分有修改,注意观察

目录 第一个已经输出过一次: 第二个: 编程实现:程序功能是用起泡法对数组中n个元素按从大到小的顺序进行排序。 ​编辑的确出现了一些问题哦: ​编辑目前是可以运行,但AI不给我们通过: 最后还是我的代码获胜&#x…

苹果电脑怎么安装crossover 如何在Mac系统中安装CrossOver CrossOver Mac软件安装说明

很多Mac的新用户在使用电脑的过程中,常常会遇到很多应用软件不兼容的情况。加上自己以前一直都是用Windows系统,总觉得Mac系统用得很难上手。 其实,用户可以在Mac上安装CrossOver,它支持用户在Mac上运行Windows软件,例…

C++牛客小白月赛题目分享(1)生不逢七,交换数字,幻兽帕鲁

目录 1.前言 2.三道题目 1.生不逢七 1.题目描述 2.输入描述: 3.输出描述: 4.示例: 5.题解: 2.交换数字 1.题目描述: 2.输入描述: ​编辑 3.输出描述: 4.示例: 5.题解: 3.幻兽帕…

开源基金会AtomGit教程

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 注册 点击链接进入官网,先注册,然后登录:https://atomgit.com/ 编辑个人资料,修改一下自己的信息,用户名后面提交代码的时候要…

frida反检测

一、frida介绍 简单来说,Frida是一个动态代码插桩框架。这意味着它能够在程序运行的时候,不改变原有程序代码的情况下,让你往里面添加自己的代码片段。这听起来可能有点像魔法,但实际上,它是通过一种叫做“HOOK”的技术…

解构复合人工智能系统(Compound AI Systems):关键术语、理论、思路、实践经验

编者按: 大模型的出现为构建更智能、更复杂的人工智能系统带来了新的契机。然而,单一的大模型难以应对现实世界中错综复杂的问题,需要与其他模块相结合,构建出复合人工智能系统(Compound AI Systems)。 本文…

wordpress 访问文章内容页 notfound

解决&#xff1a; 程序对应的伪静态规则文件.htaccess是空的 网站根目录下要有 .htaccess 文件&#xff0c;然后将下面的代码复制进去。 <ifmodule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRew…

AI领域最伟大的论文检索网站

&#x1f4d1; 苏剑林&#xff08;Jianlin Su&#xff09;开发的“Cool Papers”网站旨在通过沉浸式体验提升科研工作者浏览论文的效率和乐趣。这个平台的核心优势在于利用Kimi的智能回答功能&#xff0c;帮助用户快速了解论文的常见问题&#xff08;FAQ&#xff09;&#xff0…

STL-Setmap

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;我们将进入到CSTL 的学习。STL在各各C的头文件中&#xff0c;以源代码的形式出现&#xff0c;不仅要会用&#xff0c;还要了解底层的实现。源码之前&#xff0c;了无秘密。 STL六大组件 Container通过Allocator取得数据储存…

多标签分割

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.9/configs/multilabelseg/README_cn.md

el-select选项框内容过长

利用popper-class实现选项框内容过长&#xff0c;截取显示功能&#xff1a; <el-select popper-class"popper-class" :popper-append-to-body"false" v-model"value" placeholder"请选择"><el-optionv-for"item in opt…

大模型prompt实例:知识库信息质量校验模块

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…

war包放在tomcat服务器中,服务启动之后war包并没有正常展开如何解决?

这里我问题出现的是 XWiki 的 WAR 包未能自动展开&#xff0c;于是尝试手动解压并部署。下面是手动解压 WAR 包的步骤思路展示&#xff1a; 1. 准备目录 首先&#xff0c;创建一个新的目录用于存放解压后的文件。在 webapps 目录中创建一个名为 xwiki 的目录&#xff1a; mkd…

webjars学习

webjars介绍 官网&#xff1a;WebJars - Web Libraries in Jars github: WebJars GitHub 文档&#xff1a;WebJars - Documentation WebJAR 是一个用于管理Web前端依赖的工具。它允许开发者将特定的客户端库&#xff08;如JavaScript、CSS等&#xff09;打包成JAR&#xf…

【打工日常】云原生之搭建一款轻量级的开源Markdown笔记工具

一、flatnotes介绍 1.flatnotes简介 一个自托管的&#xff0c;无数据库的笔记网络应用程序&#xff0c;利用平面文件夹的markdown文件进行存储。 2.项目特点 A.干净简单的用户界面B.响应式移动端界面C.原生/所见即所得Markdown编辑模式D.高级搜索功能E.笔记“标签”功能F.…

安服仔番外——IaaS、PaaS、SaaS

云安全也是很重要的一个方向&#xff0c;当然了&#xff0c;今天开启这一篇的目的是up发现安服仔们需要懂的东西很多&#xff0c;确实不只局限于所谓的设备、漏扫、渗透之类的大家明面上都懂的&#xff0c;持续学习&#xff01;恰好up所在的项目对云接触很多&#xff0c;那就刚…

Rank Math Pro插件下载 - 您的SEO优化新引擎

在当今数字时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;对于任何希望提升在线可见性和吸引更多访客的网站来说都是至关重要的。Rank Math Pro是一款先进的SEO插件&#xff0c;专为WordPress网站设计&#xff0c;它能够帮助网站管理员和内容创作者轻松实现SEO最佳实…

撤销及变更:31个自然基金项目!

本周投稿推荐 SSCI • 2区社科类&#xff0c;3.0-4.0&#xff08;社科均可&#xff09; EI • 计算机工程类&#xff08;接收广&#xff0c;录用极快&#xff09; SCI&EI • 4区生物医学类&#xff0c;1.5-2.0&#xff08;录用率99%&#xff09; • 1区工程类&#…