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

逆向学习笔记1

Acid burn

1.Acid burn

查壳发现是32位系统编译的

使用ida32位的打开此文件,点击ok

破解目标,去掉软件启动时的这个弹窗

尝试查找main函数,发现没有main,因为它的语言是delphi哈哈

依次选择这三个选项,查找字符串

发现这行kill所在的位置

双击这一行,然后在箭头所指处按x,查看哪里用到了它。

点击ok,跳转到这样一个界面

按一下或者两下空格,来到这里

push 0 是这个功能的开头,鼠标放在push 0 这一行,右键单击,选择这个assemble

发现push对应的指令是6a,而return对应的指令是c3

我们处理的思路,就是将这个6A这个地址直接改成C3,开头直接return

还是在这一行,右键,patching,changebytes

然后这样操作

可以观察一下函数发生的变化

再次右键,patching,apply patchs to

然后

会出现这么一个问题,看下面的解决办法

在任务管理器这边,结束掉就行,

重新执行伤处apply patchs操作,重新打开程序就行了

2.serial number逆向

想办法让这个check it baby,过掉这个incorect

通过shift+f12定位关键字符串

查看伪代码

按空格切换视图

发现jnz后面有2种可能,先下断点吧,观察zf寄存器中的值,此时zf=0

此时如果我将zf改成0x01,那么程序就会跳转到正确的逻辑中,但这个操作和set ip是一样的。仅仅能临时修改这一次,需要真正的修改,还是需要改掉源代码,才可以

这里涉及到一个知识点,jz和jnz。这里我们直接改jnz成jz即可。这两个函数的判断方式是相反的。所以,当jz 或者 jnz 默认跳转到a结果,而我们想要的是b结果时,我们就能直接给他改成另一个函数,就达到了实现目标。

右键,asemmble

改成如下图所示,然后按一下回车

会变成这样

再保存一下

点击apply patches即可。成功

3.序列号逆向

目标就是过掉try again

第一步还是先定位字符串

双击进去,ctrl+x交叉引用定位到这里,按空格,tab切换视图

选中这一行,f2按下断点,然后点击上方绿色小箭头运行程序

会发现这条箭头一直闪缩,代表程序要往这里跳转。跟进我们上一节学到的,jn和jnz的相反性。直接改函数就行

右箭asemmble改成jz,按一下回车

结束程序运行,右键打上 apply patch即可破解此程序

相关文章:

  • Spring AI 1.0 GA 于 2025 年 5 月 20 日正式发布,都有哪些特性?
  • 软件工程(七):MQTT协议
  • 【MC】红石比较器
  • android RecyclerView列表DiffCallback说明
  • linux中cpu内存浮动占用,C++文件占用cpu内存、定时任务不运行报错(root) PAM ERROR (Permission denied)
  • 企业数字化转型是否已由信息化+自动化向智能化迈进?
  • Vue组件通信方式及最佳实践
  • Web项目流程总结
  • dali本地安装和使用
  • 【苍穹外卖】Day01—Mac前端环境搭建
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • MySQL 主从复制搭建全流程:基于 Docker 与 Harbor 仓库
  • CondaEnvException: The specified prefix appears to be a top level directory
  • 5分钟搭建智能看板:衡石科技自助式BI工具使用教程
  • 分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测
  • 借助IEDA ,Git版本管理工具快速入门
  • 隧道自动化监测解决方案
  • Spring AI 1.0 GA 正式发布
  • 订单导入(常见问题和sql)
  • 测试W5500的第4步_使用ioLibrary库创建UDP客户端和服务器端
  • 手机电影网站怎么做/外链百科
  • 做珠宝网站/seo代做