文章目录

  • 一、分析
    • 首先设置字符串断点(两个都选上),然后Ctrl+F8(自动步过)直到弹出登录窗口
    • 如果断点没有设置成功,可以手工加入断点
  • 二、修改
    • 方法一:暴力修改,无论输入什么都正常登录(nop)
    • 方法二:找到正确的用户名及密码并修改
      • 在下面的地址处按Ctrl+G搜索
      • 双击75(HEX数据),进行修改(软件原本的用户名是:username)
  • 三、保存
  • 四、练习:找到并暴力破解(改成nop)跳转点使其登录
    • je、jmp、nop、test指令等基础
    • 判断跳转位置(登录位置)方法
    • 破解步骤
    • 题目答案

一、分析

FishcOD.exe打开要破解的文件

首先设置字符串断点(两个都选上),然后Ctrl+F8(自动步过)直到弹出登录窗口

GetDlgItemText是C++中的函数,调用这个函数以获得   与对话框中的控件相关的    标题或文本  。GetWindowTextA取得一个窗体的标题(caption)文字,或者一个控件的内容GetWindowTextA 是用ANSI编码类型时使用的API函数,对于A结尾的函数都是用的ANSI编码

如果出现输入确认登录界面后没有跳转,说明断点没有设置成功

如果断点没有设置成功,可以手工加入断点

Ctrl+G搜索user32.GetWindowTextA,按F2设置断点

在一处在这个位置定位的话,它会自动去在它的其他相同位置也会设置断点,只要是用到了user32.GetWindowTextA的位置,它都会设断点



点登录会跳转到另一个地方,然后F8单步步过,找到跳转位置

修改改前再看一下,和等会做对比

二、修改

方法一:暴力修改,无论输入什么都正常登录(nop)

把      jmp         和      je      位置修改成nop

即把40204B和402065改成nop

方法二:找到正确的用户名及密码并修改



在下面的地址处按Ctrl+G搜索


双击75(HEX数据),进行修改(软件原本的用户名是:username)



三、保存


四、练习:找到并暴力破解(改成nop)跳转点使其登录

je、jmp、nop、test指令等基础

nop 是 删除 跳转je 是 条件 跳转,满足条件就跳转,不满足就不跳转jnz 不满足 条件就跳转jmp 是 无条件 跳转test 命令将两个操作数进行  逻辑与  运算,并根据运算结果设置相关的标志位。
但是,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。快捷键:F2下断点、F8单步执行,F9运行,重新载入:点 << 按键 (在工具栏下方的图标栏中)EIP是32位机的指令寄存器,Z标志位1~真,0~假(如下案例中1代表je跳转实现,0代表je跳转不实现)

判断跳转位置(登录位置)方法

这个je跳转是上面做了一个test 。test的结果影响他的标识位,影响它的标识位:ZF,如果等于1的话它就会跳出来实现。
下面那个jmp是无条件转移,只要到了jmp,它就会跳到他下一行,就是它后面的编号,它要跳到那行代码去。

上面的那个je他跳的那个位置,可以去看一下他跳的这个位置是到底是它会跳到显示错误报错的一个登陆界面,还是要显示判断它语句长短,那个登录界面。

也就是说,一步一步到F8(单步步过)到这个位置的时候,看它的运行结果里面跳出来的窗口是哪一个,如果跳出来的窗口是用户名或者是密码错误的话,那就说明他在这个test这个位置就在分析的是用户名跟密码。

所以就可以去修改这个位置,也就说不让他去跳报错的那个界面位置,用nop来代替后就算他test完以后,也不会去跳这个位置,接着去运行他下一行,那这样的话就达到了不会弹出报错这个界面的目的

破解步骤

按照上文手工添加断点,自动步过直到弹出输入框


输入后,点确定后自动跳转到这里:


继续按F8,直到这个位置,出现跳转。但是,jnz不满足条件就跳转。应该是判断用户或密码长短的。不修改



继续按F8,发现跳转。在这个位置运行登录框(点红色按钮),发现弹出失败窗口,所以要改这里



修改后(无论输入什么、什么都不输入:都登录成功)

修改前后对比

题目答案




OD修改 exe文件 成功登录,je、jmp、nop、test汇编指令分析《逆向工程》相关推荐

  1. qt 修改.exe文件图标_如何在没有错误的情况下更改压缩的.EXE文件上的图标

    qt 修改.exe文件图标 We've previously shown you how to modify the icon on an .EXE file, but if you've tried ...

  2. VC++编程实现修改EXE文件图标

    VC++编程实现修改EXE文件图标 刚才发现论坛上面有网友问:如何通过编程实现修改EXE文件的图标,类似于 熊猫烧香 的效果!自己也对这个比较感兴趣网上找了找,找到了两种方法,可以满足大家都要求了,这 ...

  3. 修改exe文件的图标

    修改exe文件的图标: 点击项目的属性,找到图标和清单,修改图标就ok,但是图标必须是ico格式的,如下图: jpg转ico: 把jpg格式的图片先用系统自带的画图工具打开,可以调整属性,然后另存为b ...

  4. 尝试用studyPE和x32dbg修改.exe文件

    标题尝试用studyPE和x32dbg修改.exe文件 首先,准备一个exe文件,这里我使用自己用c++编写的exe文件,在程序中调用了LoadLibraryA函数动态加载dll文件,并使用GetPr ...

  5. 尝试用studyPE和x32dbg修改.exe文件01

    标题尝试用studyPE和x32dbg修改.exe文件01 首先,准备一个exe文件,这里我使用自己用c++编写的exe文件,在程序中调用了LoadLibraryA函数动态加载dll文件,并使用Get ...

  6. 用UpdateResource修改EXE文件图标的多源码(已修正) 注:转帖请包函作者信息.(作者:菜新)

    微软官网UpdateResource 其它参考信息: https://msdn.microsoft.com/zh-cn/library/ms648008.aspx#_win32_Updating_Re ...

  7. 使用rcedit修改exe文件信息(图标、版本、版权等)

    文章目录 目的 使用说明与演示 version-string key 总结 目的 我在使用Electron的时候由electron-forge打包出来的exe中部分文件信息没法通过配置或打包时修改: ...

  8. Qt修改exe文件图标

    修改Qt生成exe的图标 1. 直接添加.ico 首先要注意的一点是,你的.ico文件不可以是直接用过jpg等图片格式直接修改后缀名形成的,必须是用转换工具来通过jpg转换成ico的格式,不然就会出现 ...

  9. 如何直接修改exe文件

    在以前学习的时候,无法想象在没有源码的时候如何对exe文件添加功能,觉得简直不可思议,在了解汇编和反编译的一些知识后,原来这种想法是可以实现的.我们需要对exe文件进行直接修改,把我们的代码直接写入e ...

最新文章

  1. python官方-Python官方中文文档强势来袭
  2. 【Binder 机制】进程通信 | 用户空间与内核空间 | MMU 与虚拟内存地址
  3. pip keras 失败_关于 Python 机器学习导包失败 简短的补充
  4. DFS应用——寻找欧拉回路
  5. 微信小程序快速开发上手
  6. 微型计算机的逻辑元素,微机原理及应用 宋廷强 微型计算机原理及应用.ppt
  7. 定位CPU高问题三把斧
  8. 软件外包,IT咨询和转型
  9. python图像增强算法_python 图像增强算法实现详解
  10. 拉普拉斯方程续有限差分法
  11. win10远程连接Ubuntu
  12. 阶段性总结 个人总结 (上)
  13. 前端三大框架React、Vue、Angular简述
  14. KVM地址翻译流程及EPT页表的建立过程
  15. java正则表达式逗号_java – 接受逗号或分号分隔值的正则表达式模式
  16. 怎么更换电脑的默认浏览器?
  17. Linux环境下YUM和DNF详细介绍
  18. 2023年浙大MEM英语二作文干货模版:临阵磨枪可用
  19. android 沉浸式状态栏导致布局被遮挡,沉浸式状态栏导致华为手机虚拟按钮被遮挡的解决办法...
  20. service层的作业+mybatis中的重要组件

热门文章

  1. prolog学习_修道士野人问题
  2. 彻底卸载MariaDB
  3. 【xinfanqie】解决网络出现“正在连接”的问题
  4. 《阿里巴巴Java开发手册(正式版)》--MySQL规约
  5. centos7 gam_server进程导致CPU使用率100%,系统负载很高
  6. 解决方案:Linux Ubuntu16.04 下无法挂载大容量U盘,优盘打不开
  7. 如何用多线程实现归并排序
  8. NLP04-pyLDAvis可视化主题
  9. 机器阅读理解算法集锦
  10. 官方确认:新增一所“双一流”大学!