• 《Linux及安全》实践3.2


    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),显示正常功能

  • 相关阅读:
    APP之百度地图SDK的AK值获取(android)
    横向滚动菜单-选中标题居中显示
    函数按引用传参问题
    js验证提交
    Java servlet ajax
    数据库3种读
    mybatis插件
    mybatis 缓存
    从前端对象中获取的文本变为字符串,并替换其中一些指定的字符
    多个窗口开启后,切换到指定title的窗口
  • 原文地址:https://www.cnblogs.com/lwr-/p/5545702.html
Copyright © 2020-2023  润新知