2022-3-9 二进制安全学习笔记(2)

二进制安全入门题目下载链接为:https://github.com/LiveOverflow/liveoverflow_youtube
使用的工具为radare2,下载链接:https://github.com/radareorg/radare2
还有gdb linux动态调试工具,下载方式为 apt install gdb

题目为:0x05_simple_crackme_intro_assembler

strings

这个工具能打印出程序里的字符串

strings 文件


这里我们也找到了密钥

objdump

objdump这个工具可以用来将二进制文件转成汇编代码让我们进行分析

objdump -d 文件     ##进入程序反汇编

objdump -x 文件      #打印程序里所有的内容

strace

strace是Linux环境下的一款程序调试工具,用来监控一个应用程序所使用的系统调用

strace ./文件


我们在程序后面随便跟上一个参数

strace ./文件 AAAA-KEY


我们可以看到,这个工具在系统里的调用

ltrace

这个工具是跟踪系统里的函数库调用的,我们随便输入一个参数

ltrace ./文件  AAAA-KEY


我们可以看到,这里的函数跟正确的密钥做了比较,也泄露了正确的密钥

radare2

radare2是一个linux动态调试工具,内置功能很强大,我们用radare2打开题目

radare2 -d 程序   ##-d 调用gdb

输入aaa       #自动分析自动命名功能

输入afl   #查看找到所有的函数


用s找到要用的函数位置

s main

输入pdf,显示所有的汇编代码

这里我们已经看到了密钥,但是我们还有其他方法获得密钥
我们先在main函数开头下一个断点

db [addres]   #设置一个断点


输入VV,进入可视模式

我们就清楚的知道程序执行的流程

tab/shift tab 可以选择其他块
shift+hjkl移动该块
p 显示不同的表现模式
输入":"  #命令模式
afvn 函数名 info    #重命名函数

然后输入来运行程序

: dc   #运行程序


这里可以看到,我们成功的到达了断点处,再敲击一下回车键就可以退出命令模式

按s/shift+s可在可视化图形界继续执行下一步的汇编操作


这个rip就是我们指针在指向的位置,非常的方便
按s继续执行

可以看到,我们没有输入参数,于是系统就调用了程序的提示字符串,来打印出提示的内容
继续按s,我们退出了程序,然后按q,回到之前的汇编模式

下一章节,将详细介绍radare2的使用和破解程序的教程

二进制安全学习笔记(2)相关推荐

  1. Oracle数据二进制传输,学习笔记:Oracle数值函数 十进制与二进制相互转换的函数使用案例...

    天萃荷净 ORACLE 十进制与二进制互转函数,开发DBA向我咨询数值转换的方法,Oracle数值转换函数NUMBER_TO_BIT等函数可用 1.Oracle数值转换之十进制转换二进制 CREATE ...

  2. 浮点数的二进制表示学习笔记

    基础知识: 十进制转十六进制: 十六进制转二进制: IEEE制定的浮点数表示规则: 了解: 目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算.这种结构是一种科 ...

  3. pythonutf-8是不是二进制_python学习笔记8-9(字符编码与二进制)

    字符编码 python解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII) 二进制 举例:古时候烽火台,点火和不点火只有两种状态,传递信息太少. 约定点火数1,代表1-100 点火数2 ...

  4. c语言float二进制输出代码_C语言学习笔记——学前知识概述

    将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢! 前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,希望我的这本笔记能够对大 ...

  5. php 二进制移位,php移位运算、移位操作学习笔记

    下面是一些常用的关于php移位运算.移位操作学习笔记,希望文章对各位同学带来价值. 位运算应用口诀 清零取位要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算 ...

  6. 学习笔记_使用二进制的方式修改图片

    学习笔记_使用二进制的方式修改图片 1.学习目标 2.学习工具 3.开始操作 3.1 了解图片是怎样用二进制表示的 3.2 开始操作 4.参考文档 1.学习目标 掌握使用二进制的方式修改图片 了解BM ...

  7. CODE学习笔记一——构建二进制加法器

    code用了一定的篇幅写编码以及进制的内容(毕竟书名就叫code),这部分内容我可能兴趣缺缺吧,所以第一篇学习笔记便从加法器写起啦. 目录 目录 用继电器构造简单的逻辑门 一个继电器: 反向器(非) ...

  8. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  9. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

最新文章

  1. Python小程序:你看?这千年难遇的雪景—简直“美到犯规” 【满屏雪花飞舞 】
  2. go语言中fallthrough与break的使用
  3. 一起学设计模式-观察者模式
  4. linux下父子进程共享socket,多进程共享socket(Linux,Win32)
  5. 走进武汉,解密多媒体开发新场景、新实践(内附资料下载)
  6. 入门训练 序列求和 c语言
  7. SAP Fiori Elements save按钮的实现细节
  8. Linux 命令(94)—— env 命令
  9. 如何修改html中字号大小,css怎么设置字体大小?
  10. mongodb更新语句_MongoDB更新
  11. 最痛苦的一周——第三周作业Collinear
  12. LintCode: Combination Sum
  13. 芝加哥大学终身教授:自然科学与社会科学的真正区别
  14. 为你的网站添加一个帅气的IP签名档吧 – 教程附源码
  15. unity游戏模型获取- AssertStudio(原GuiStudio)(以第二银河为例)
  16. “假努力”与“假关心”
  17. 优麒麟 20.04 pro更换内核
  18. android 扇形菜单动画,ArcMenu,仿path中带动画效果的扇形菜单
  19. 如何快速查找BUG?
  20. ITX-3568JQ四核ITX工业级主板

热门文章

  1. 「凹凸数据」历史文章合集,更新中
  2. 终于有人把业务中台、数据中台、技术中台都讲明白了
  3. ubuntu如何降级到之前的版本
  4. 计算机网络: 码元 波特 速率 带宽
  5. C语言——整数各位数字求和
  6. 转让英孚10个月课程
  7. Arm指令模拟器开发参考指南【翻译自 armDeveloper】
  8. 【基础篇】MySQL系列之where条件查询
  9. fspecial 在MATLAB中的用法
  10. Latex写文章时插入单栏图片和双栏图片方法