Login程序破解

一、掌握基本的汇编指令机器码

  • nop=空指令( 机器码90)
  • JNE = 如果不相等就跳转机器码75)
  • JE = 如果相等就跳转机器码74)
  • JMP = 无条件跳转机器码EB)
  • CMP = 比较

二、进行破解操作

1.用winscp将login文件传送到Ubuntu中

2.修改文件权限为可执行文件

- ![](http://images2015.cnblogs.com/blog/744595/201605/744595-20160531141059539-907775874.png)

3.可以看到在上面的步骤中,login执行之后是“drop dead”的

4.查看反汇编代码

    • 可以看到在上图中标为黄色的部分是一个比较语句(jne), jne表示当比较不相等时,跳转。
    • 而0x75 0e表示jne指令的跳转量为0x0e,从0x8048456跳转到0x8048464一行(即imp一行)。也就是说,当输入与已存口令不相等时,就不会执行函数调用(call)。
    • 那么,如果要破解程序使得无论输入的口令是否是正确的,都可以实现函数调用,就需要将这条jne指令修改一下,使得其跳转到0x8048458行的movl处,从而顺利执行call语句。
    • 所以,我们需要将0x750e修改为0x7500

5. 程序破解

  1. vi打开login,输入“:%!xxd”(中间无空格)

  2. 输入:/750e查找到那个位置,比对四周,确定位置后将其修改为7500

  3. 输入“:%!xxd -r”保存

  4. 输入“:wq”保存

  5. 运行,输入和上次同样的password(lwr),显示正常功能

最新文章

  1. MongoDB安装配置示例
  2. win7 64 安装mysql-python:_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
  3. 关于eclipse的一些配置
  4. 检查Chunksum与Chunk Data之间的缓冲区发送到DataNode节点
  5. Flash Download Failed-"Cortex-M3"
  6. .net 下的MVCPager
  7. Unity3d个人信息开发流程
  8. BZOJ1677: [Usaco2005 Jan]Sumsets 求和
  9. 在VS上配置OpenCV
  10. JS中的加减乘除和比较赋值
  11. Your branch and remoteBranchName have diverged solution
  12. #010 全年级C语言开始统一刷题了,能否坚持下去?
  13. jenkins使用4----git maven工具连接
  14. 关于function和task的说明
  15. wpf DataTemplate ColumnDefinition width equal
  16. sql 中的 STUFF()使用说明,以及千分位的常用函数
  17. Blend for Visual Studio 2013
  18. [ZJOI2019]语言[树链的并、线段树合并]
  19. Code First配合Entity Framework Power Tools Beta 4使用
  20. Win10系统安装vmware workstation 12后没有桥接网卡怎么办

热门文章

  1. Vim 键盘指令高清图
  2. Android 动态生成 EditTest
  3. jwplayer播放器停止 单页内多个jwplayer对象停止问题
  4. 【基础知识】UML基础
  5. Pyqt 动态的添加控件
  6. malloc与new的区别
  7. [译]:Orchard入门——使用标签管理内容
  8. 国内其他的maven库
  9. MySQL 分组后,统计记录条数
  10. AMR 转mp3 失败