精华内容
下载资源
问答
  • 02正文静态分析:IDA软件界面:快捷栏返回上一界面(快捷键ESC)/回到下一界面搜索,从左至右依次为“数值搜索”,“文本搜索”,“二进制搜索”。转换为数组视图菜单(View-Open subviews):主窗口:左...

    云影安全

    YunYingSEC

    RE

    01

    说在前面

      阿巴阿巴阿巴……本菜鸟(黑鸟)终于给大家准时更新一篇了。今天我们来看一下逆向的工具使用。当然,本文只涉及基础操作,大佬勿喷。

    02

    正文

    静态分析:

    IDA软件界面:

    0d01ef3e6751f1d6348d2c8152c55ced.png

     快捷栏

    a646ad250b99a3fff6c00f44b38e7628.png

    d8ad7267bb20f4df45ddd4f559438058.png

    回上一界面(快捷键ESC)/回到下一界面

    e4d2826cf5899f2926debcb3975906ad.png

    搜索,从左至右依次为“数值搜索”,“文本搜索”,“二进制搜索”。

    8d7e30d18231d7d6ae6fc88edfbaeecb.png

    转换为数组

    视图菜单(View-Open subviews):

    23c11fad08d6ff00bfffd76eda878b31.png

    主窗口:

    437dd8c85f62a56ce4179da088ccc519.png

    左侧为函数窗口,显示了程序中被IDA识别的所有段。在Segment一列中标注了这些段的类型,其中.text段为代码段,是逆向是重点关注的对象。Start一列是这些段的起始位置。在代码段中,有一个粗体显示的main,这是程序的主入口。逆向也从这里开始。

    详细用法:

    Disassembly(反汇编)

    菜单栏-View-Open subviews-Disassembly

    IDA加载程序后默认显示的窗口,在窗口标签上显示为“IDA View”。该窗口中显示的是程序的汇编码(Assembly)。下图是一个程序的主入口的汇编码。 

    b428ff070996adf36fafb88fba6dd367.png

    在这里按空格,会切换至图形模式:

    3b3246307b47ca516d2adf992909eadc.png

    Generate pseudocode(生成伪代码):

    菜单栏-View-Open subviews-Generate pseudocode

    快捷键:选中函数后按F5(一定要在一个函数里面)

    IDA中最常使用的功能,将难以看懂的汇编码转换为比较容易看懂的C语言代码。

    22d34efc4d5246d87eae9b01d6859a16.png

    双击函数,便会进入所点击函数的伪代码。

    快捷键:

    X:查看交叉引用

    N:重命名函数或者参数

    ESC:返回上一个窗口

    ……

    IDA动态:

    虽然IDA是一个静态分析工具,但是它同时具有动态调试功能,动态调试功能和下面要讲到的x64dbg的操作过程一样,所以我们留着,等一会说。

    IDA是一个十分强大的工具,IDA有个一个比较全面的“手册”《IDA权威指南》。我们这里就只是把IDA最最简单的用法写出来,如果想要了解更多,可以看那本书或者再网上搜索更多资源

    动态分析:

     按道理来说,现在最著名的动态调试器应该是GDB和OD(OllyDbg),但是由于GDB的命令行操作和OD仅支持32位程序的缘故,这里我们动态调试主要是讲解x64dbg以及x32dbg的使用。但是x32dbg的使用与OD的使用大同小异,所以我们也就不单独讲解OD的使用了。

    面板信息

    41c69efbddf72a740005567fdf881b2f.png

    反汇编面板窗口(Disassembler window):

    反汇编面板窗口显示被调试的代码,一共四列:

    地址(Address):显示双击行地址的“相对地址”,再双击显示标准地址

    十六进制机器码(Hex dump):双击设置或取消断点

    反汇编代码(Disassembly):显示汇编代码

    注释(Comment):允许增加或编辑注释(快捷键“;”)

    信息面板窗口(Information window):

    在进行动态调试的过程中,显示与指令相关的各寄存器的值、API函数调用以及跳转信息、内存数据等

    数据面板窗口(Dump window)

    以十六进制显示内存数据。可以用“Ctrl + G”快速定位指定地址内存

    寄存器面板窗口(Register window)

    显示cpu各寄存器的值。

    栈面板窗口(Stack window)

    显示栈内容,即ESP指向地址的内容

    基础操作:

    快捷键

    功能

    F2

    设置/取消断点

    F7

    单步步进(按一下,执行一句指令,遇到call函数,进入函数)

    F8

    单步步进(按一下,执行一句指令,遇到call函数,不进入函数)

    F9

    运行

    F4

    运行到所点击的指令

    CTRL+ F9

    直到出现ret指令中断

    这里还有一个比较重要的内容就是“各种断点”,但这里就不展开讲解,大家可以看一下链接内容:

    https://blog.csdn.net/qq_38684512/article/details/86615482

    其他反编译工具:

    我在入门指北的第一篇中就有提到,我们做题或者学习的过程中会遇到由各种各样的语言写的程序。他们往往就需要各自的工具进行反编译。

    这里我只提供工具名称,具体用法大家还是看百度吧(太多了……偷个懒):

     Java:jd-gui、jeb

     python:uncomplye6

     C# : C# REFLECTOR

     Basic:VB Decompiler Pro

    ……

    2c26af1a19c249162917194efd36fe76.png

    917ecbf8f39aea1194b63eb718b0cc7c.png

    扫码关注我们

    图文:云影安全

    排版:云影安全

    展开全文
  • 个人原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换、加、减、乘、除、取余、与、或、非等计算,支持GB2312Z...
  • 把目标代码转为汇编代码的过程,也可以说是把机器语言转换为汇编语言代码、低级高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机)、外挂技术、病毒分析、逆向工程、软件...
    问题1:c反汇编是什么意思呢?
    回答:
    反汇编(Disassembly):把目标代码转为汇编代码的过程,也可以说是把机器语言转换为汇编语言代码、低级转高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机)、外挂技术、病毒分析、逆向工程、软件汉化等领域。学习和理解反汇编语言对软件调试、漏洞分析、OS的内核原理及理解高级语言代码都有相当大的帮助,在此过程中我们可以领悟到软件作者的编程思想。总之一句话:软件一切神秘的运行机制全在反汇编代码里面。
    补充:
    C反汇编过来就不再是C了,变成汇编语言程序了,这个目前较高水平的人应该是求伯君,此人汇编水平在苹果、微软、google为之震撼。


    问题2:将十进制数25.7转换成等值的二进制数和十六进制数为多少?
    如果是浮点
    十六进制:41CD999A
    二进制:01000001110011011001100110011010
    具体算法可参考IEEE745标准
    展开全文
  • 下面是用笔记本电脑的MODTEST软件在COM 1口经232485转换器转变为485口后连接到流量计算机,通过MODBUS协议读取到的流量计内部数据,下面通过分析,解释了如何把十六进制转换为十进制的计算过程。即下面记录里面的...

    IEEE标准的32位浮点数转换为十进制的计算方法


     


    下面是用笔记本电脑的MODTEST软件在COM 1口经232转485转换器转变为485口后连接到流量计算机,通过MODBUS协议读取到的流量计内部数据,下面通过分析,解释了如何把十六进制转换为十进制的计算过程。即下面记录里面的十六进制数据转换为左上角显示的十进制数据。


    点击看大图


     


    流量计计算机通过485端口以MODBUS协议把内部IEEE32位浮点数传送到DCS的数据


     


    经过研究试验,其数据格式如下


     


    数据请求依次为:十六进制


    从站地址:01;读命令:03;数据起始高位地址:0F;数据起始低位地址:A0;(0FA0=4000即地址44001);数据长度高位:00;数据长度低位:28;(0028=40即40个地址);CRC效验码:46,E2


     


    数据应答格式:


    从站地址:01;读命令反馈:03;数据长度:50;第一个地址:69;C0;48;A9;第二个地址:C5;00;48;A2;以下类推,直到最后两位CRC:E8;86


     


    第一个地址:69C048A9是如何换算为346958的呢?


    流量计发送的是IEEE标准的32位浮点数


    首先要把69;C0;48;A9进行高低16位交换变成:48;A9;69;C0


    变为32位二进制数:01001000  10101001  01101001  11000000


    其中最高位为0,代表是正数


    接下来的八位:10010001变成十进制是145,根据IEEE规范应减去127得18,这是小数点右移的位数;


    剩下的23位是纯二进制小数即:0.0101001  01101001  11000000


    加1后得1.0101001  01101001  11000000


    小数点右移18位后得10101001  01101001  110.00000


    变为十进制得346958


     


    其它地址的32位浮点数计算方法同上


    基于以上的算法在java里有封装好的方法

    解析:Float value = Float.intBitsToFloat( Integer.valueOf( hexstr, 16 ) );//hexstr为高地位互换的16进制字符

    写modbus时:

    Integer i = Float.floatToIntBits( Float.valueOf( val ) );
    String hex = Integer.toHexString( i );
    String hex1 = hex.substring( 4, 8 );// 第一个寄存器
    String hex2 = hex.substring( 0, 4 );// 第二个寄存器


    展开全文
  • 电脑连接CAN分析仪,电脑通过软件USB-CAN把can十六进制数据发到CAN分析仪。CAN分析仪连接CAN以太网设备,数据通过CAN以太网设备后,通过网线传送到单片机。这里面,CAN以太网设置为TCP Client模式,以CAN...

    一、物理连接

    在这里插入图片描述

    二,流程分析

    电脑连接CAN分析仪,电脑通过软件USB-CAN把can十六进制数据发到CAN分析仪。CAN分析仪连接CAN转以太网设备,数据通过CAN转以太网设备后,通过网线传送到单片机。这里面,CAN转以太网设置为TCP Client模式,以CAN转以太网设备作为服务端,服务端IP地址为:192.168.0.7,端口号为:20001。单片机作为客户端,向服务端发起连接请求,接受来自服务端的数据。
    在这里插入图片描述

    三,客户端程序

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include<errno.h>
    #include<unistd.h>
    #include<stdlib.h>
    #include<sys/socket.h>
    #include<arpa/inet.h> 
    #include<string.h>
    
    #define SERV_IP "192.168.0.7"
    #define SERV_PORT 20001
    #define ITEMSIZE 3
    #define WIDEIMAGE 500
    
    int main()
    {
            int cfd,fd;
            struct sockaddr_in serv_addr;
            socklen_t serv_addr_len;
            char readChar[ITEMSIZE],writeChar[1024];
            int count,j=1;
    
            cfd = socket(AF_INET,SOCK_STREAM,0);
    
            memset(&serv_addr,0,sizeof(serv_addr)); 
            serv_addr.sin_family = AF_INET;
            serv_addr.sin_port = htons(SERV_PORT);
            inet_pton(AF_INET,SERV_IP,&serv_addr.sin_addr.s_addr);
    
            connect(cfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr));
    
            fd = open("can2.txt",O_RDONLY|O_WRONLY|O_CREAT);
    
            while(1){
                    count = read(cfd,readChar,ITEMSIZE);
                    //write(fd,buf,sizeof(buf));
                    if(count==0){
                            break;
                    }
                    readChar[count]='\0';
    
                    count  = sprintf(writeChar, "%02x%02x%02x ", 
                            readChar[0]&0x00FF, readChar[1]&0x00FF, readChar[2]&0x00FF);
                    writeChar[count] = '\0';
                    write(fd, writeChar, count);
                    if(count < ITEMSIZE)
                    {
                            break;
                    }
                    if(j++%WIDEIMAGE  == 0)
                    {
                            write(fd, "\n", 1);
                    }
    
            }   
            close(fd);
            close(cfd);
    
            return 0;
    }
    
    展开全文
  • 3、二进制转八进制、转十六进制(分组快速转换)。 【备考点拨】 1、掌握二进制数与十进制数的互转,熟练计算IP地址转换; 2、掌握二进制与十六进制的互转,熟练掌握内存地址转换。 考点1.2、原码/反码/补码/移码...
  • 数制转换课件

    2018-12-22 14:14:18
    2、掌握二进制、十进制、八进制、十六进制数的表示方法。 3、掌握二进制、八进制、十六进制数转换为十进制的方法。 4、掌握十进制整数、小数转换为二进制数的方法。 【技能目标】 1、培养学生逻辑运算能力。 2、培养...
  • 4-7.数据类型_PLC软元件的使用方法及案例分析flv,数据类型_三菱FX网络培训课程软件及软元件9!数据格式及换算,常用的数据类型,十进制数据,二进制数据,十进制转二进制,十六进制数据,软元件分类及组合,
  • Beat the Machine是一个工作坊,旨在向学生介绍纸上的软件逆向工程(二进制十六进制,反汇编)的概念,而无需计算机和软件设置。目标受众是具有编程知识的初中到大学学生(鼓励熟悉二进制十六进制)。 主要是...
  • 软件设计师考点

    2015-09-23 22:34:00
    二进制、八进制、十进制和十六进制等常用数制及其相互转换 (2)计算机内数据的表示 数的表示 非数值表示(字符和汉字的表示、声音表示、图像表示) (3)算术运算和逻辑运算 计算机中的二进制数运算方法 ...
  • 十六进制、十进制、八进制、二进制转换;等等。 本款软件为全英文界面,在2005年到2014年间发布为共享软件(shareware),2018年开始以免费软件(freeware)形式发布,最新版本为5.01。 官方网址:...
  • 二进制 (用B来表示) 、八进制(用O来表示)、十进制(用D来表示)、十六进制(用H来表示) 1227(D)= 1000 +200+20+7 = (1x10³)+(2x10²)+(2x10¹)+(7x10º) 10100.01(B) = 1X24+ 0x2³ +1x2² + 0x2¹ +0x2º ...
  • 二进制、八进制、十进制和十六进制等常用数制及其相互转换 1.2 计算机内数据的表示  数的表示(补码表示,整数和实数的表示,精度和溢出)  非数值表示(字符和汉字表示,声音表示、图像表示) 1.3算术运算...
  • 十六进制编辑器是一种允许您查看和编辑二进制文件中个别 字节的程序,而高级的十六进制编辑器(包括 010 Editor)还允许您编辑硬盘驱动器、软盘驱动器、内存密钥、闪存驱动器、光驱和进程中的字节。 SweetScape 010 ...
  • 十六进制射线微码 BAP 瑞尔 ESIL 里尔 VTIL 类型重建 DIVINE:在可执行文件中发现变量 针对x86可执行文件的改进的内存访问分析 TIE:二进制程序中的类型的原则性逆向工程 机器码的多态类型推断 控制流重构 不再...
  • windows -- 一个字符串转换的工具软件

    千次阅读 2020-02-15 12:25:07
    文章目录一、前言、目前支持的转换1、主界面显示效果2、增删空格功能3、增删十六进制前缀0x4、增删逗号(数据分割)5、计算CRC6、大小写转换7、退出三、源码以及.exe文件下载四、声明 一、前言 在C语言的开发、...
  • 1.1.4 二进制与八进制、十六进制之间的转换 1.1.5 二进制数与十进制数之间的转换 1.2 编码 1.2.1 十进制数的二进制编码 1.2.2 带符号的二进制数的编码 1.2.3 带小数点的数的编码 1.2.4 字符编码 习题 第二章 组合...
  • 2005-2009软件设计师历年真题

    千次下载 热门讨论 2010-05-18 19:20:10
     • 二进制、十进制和十六进制等常用制数制及其相互转换  1.2 数据的表示  • 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出)  • 非数值表示(字符和汉字表示、声音表示、图像表示...
  • 用来分析软件采了何种加密算法的工具 ├─keygen │ ├─Keymark ; Keymark工具(可以制作注册机) │ └─txt2asm ; 将TRW2000和W32Dasm等汇编代码转换成Asm格式 ├─time │ └─gear ; 变速齿轮 ├─...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    在 e:\text 目录下的 rar 压缩文件中搜索十六进制字符串 f0 e0 ae ae ab 2d 83 e3 a9。 k 锁定压缩文件。任何试图改变压缩文件的命令都会被忽略。 例子: rar k final.rar l[t[a],b] 压缩文件的内容列表...
  • 1.4 二进制十六进制 1.4.1 二进制 1.4.2 十六进制 1.5 二进制的逻辑运算 1.5.1 与 1.5.2 或 1.5.3 非 1.5.4 同或 1.5.5 异或 1.6 单片机的C51基础知识介绍 1.6.1 利用C语言开发单片机的优点 1.6.2 C51中的基本...
  • 4.1 二进制、十进制和十六进制 4.2 C 语言变量类型和范围 4.3 C 语言基本运算符 4.4 for 循环语句 4.5 while 循环语句 4.6 函数的简单介绍 4.7 Keil 软件延时 4.8 流水灯程序 4.9 练习题 第5章 定时器与...
  • 思科网络技术学院教程CCNA1

    热门讨论 2013-05-28 06:37:53
     1.2.8 十六进制数字系统:base 16  1.2.9 布尔运算和二进制逻辑运算  1.3 总结  1.4 检查你的理解  1.5 挑战性问题和实践 .第2章 网络技术基础  学习目标  2.1 网络基础和术语  2.1.1 网络领域的简史  ...
  • 21天学通C++ (中文第五版)

    热门讨论 2010-06-23 16:57:03
    BradleyJones是Microsoft Visual C++MVP,他身兼网站管理员、经理、编码大师、执行编辑等职,其主要精力放在众多软件开发网站和频道上,其中包括Developer.com、CodeGum.com、DevX、VBForums、Gamelan以及...
  • 会计理论考试题

    2012-03-07 21:04:40
    A、模拟信息 B、模拟信息或数字信息 C、数字形式D、二进制形式的数字 6.在Windows98中,要恢复回收站中的文件,只要___B____。 A、双击该文件 B、用鼠标把该文件施出回收站 C、单击该文件 D、A、B、C均可 7.在...
  • OllyDBG v1.10 汉化第三版

    热门讨论 2011-05-19 23:11:43
    二进制编辑器则会以ASCII、UNICODE或者十六进制的形式同步显示修改后的数据。修改后的数据同其它数据一样,能够进行复制-粘贴操作。原来的数据会自动备份,以便数据恢复时使用。您可以把修改的部分直接复制到执行...
  • 问题17 如何将十六进制数转换为float值 155 第3章 维绘图简介 157 3.1 知识点归纳 157 3.1.1 常用的维绘图函数 157 3.1.2 绘图工具 163 3.1.3 绘图注释 166 3.2 重难点讲解 174 3.2.1 维绘图的相关函数...
  • 现代C++程序设计

    2012-07-10 23:29:45
    《现代C++程序设计(原书第2版)》图文并茂,通俗易懂,真正做到寓教于乐,是...附录E 位、字节、内存和十六进制表示 附录F 文件输入/输出 附录G 部分C++类 附录H 多文件程序 附录I Microsoft visual C++2005Express Edit

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

二进制转十六进制分析软件