自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (3)
  • 收藏
  • 关注

翻译 自动化二进制分析技术 (State of) The Art of War: Offensive Techniques in Binary Analysis

本篇文章翻译自:(State of) The Art of War: Offensive Techniques in Binary Analysis论文下载链接:http://www.cs.ucsb.edu/~chris/research/doc/oakland16_sokbin.pdf文章主要讲解的是常见的二进制分析技术,作者对各类技术进行了实现与评估,开发了angr二进制检测框架。里面对各类技...

2018-03-09 19:12:01 5717 1

原创 python 传入命令行参数 argparse

有的时候自己用python写个工具想通过命令行传递参数,虽然有sys.argv可以用,但是参数类型多种多样,sys.argv是无法满足我们的需求的。有些参数是必须的,有些参数不是必须的,甚至有的时候还想写个help帮助自己和大家了解每个参数的作用,因此掌握一个通用的传参方法是非常重要的。argparse就可以满足我们所有需求啦,真的超级好用啊!argparse的使用方法:import a...

2019-04-04 11:22:27 1310

原创 SmartThings IoT 开发——云直连设备(Tizen IoT 基于Linux的)

SmartThings IoT Ecosystem SmartThings物联网生态系统组件介绍移动应用:它用来管理物联网设备和自动化设置。 设备:设备可以与三星的云直连,可以通过SmartThings connector间接连接到第三方云。同时,设备也可与SmartThings hub连接。 SmartApp:可以是AWS Lambda函数,也可以是带有RESTful API接口的Web...

2019-01-21 12:40:27 1475 1

原创 提取摄像头固件中应用逻辑代码

所需工具:file 用来查看文件类型strings 用来获取文件中所有的字符串binwalk 用来提取和分离固件firmware-mod-kit 分析固件的瑞士军刀了,能做很多事,以后有机会写一系列的firmware-mod-kit相关博客。固件分析首先用binwalk分析固件格式,即固件中包含了哪些文件。binwalk firmware.bin提取文件系统提取出文件...

2019-01-07 18:33:10 4296

原创 shell 实现遍历文件,指令命令 and 写入文件

参考链接:https://blog.csdn.net/lyxleft/article/details/82222452需求:遍历目录下的所有后缀为bin的文件,利用strings命令输出文件内包含的字符串。for file in ./*do if [ "${file##*.}"x = "bin"x ] then filename=`basename $file`...

2019-01-03 12:51:26 2164

原创 spyder win7 python3.7安装记录

环境介绍:首先我是wind7上python3 和 python2共存的,pip默认指向的是python3。但是就因为是这样想的,结果导致我Spyder一直安装失败。最后发现还是需要指明使用的pip版本。安装教程参考的是这篇文章:https://www.cnblogs.com/wangqiang9/p/wangqiang9.html只是里面的pip 都用pip3进行替换。启动Spyder的...

2019-01-02 09:10:27 2238

原创 Python中 str、bytes、bytearray的相互转化

在一次aes解密中,我完全弄混了str、bytes、bytearray,结果导致解密的结果不正确。在这里记录一下三者的区别和相互转化的方法。首先str是采用Unicode编码方式的序列,主要用于显示。而bytes是字节序列,主要用于网络和文件传输。bytearray和bytes是一样的,只是它是可变的,它们的关系和str与list类似。在aes解密或者网络数据中,数据应该是byte...

2018-12-29 10:53:36 44726 3

原创 嵌入式开发——串口 UART JTAG TTL 区别和联系

参考文献:区分:串口,COM口,UART,USARThttps://blog.csdn.net/qq_26904271/article/details/79829363JTAG,串口和USB这三者的区别http://bbs.eeworld.com.cn/thread-453119-1-1.html1.串口 COM UART JTAG(它们是一个类别的,对应的是硬件,区别是设备...

2018-11-29 17:32:08 10041

翻译 Passwords in the Air: Harvesting Wi-Fi Credentials from SmartCfg Provisioning

smartconfig介绍smartconfig是用来给物联网设备配网的,一般通过移动APP发送广播包,将wifi的凭证包括ssid和password按照一定规则编码在广播包(802.11)中。设备嗅探到广播包后进行解码,获取ssid和password。值得注意的是,编码时,有效信息并不一定是编码在数据包的内容中,而是与数据包的长度有关。因此,抓包时可以看见超级多不同长度的广播包,这些包的长度...

2018-11-15 11:28:24 214

原创 mitmproxy - 环境配置-安装-实例

初探     mitmproxy是一个开源免费的HTTPS代理工具。它有三个使用接口:command line(命令行),web interface(web接口),Python API(Python编程接口)。它可以用于拦截、检查、修改和重放web流量,例如HTTP/1、HTTP/2、WebSockets或任何其他SSL/ TLS保护协议。它可以帮助我们对从HTML到Protobuf的各...

2018-11-14 18:42:42 3904

原创 Ubuntu16.04建立wifi热点

 安装网卡驱动为了拦截数据,我需要在Ubuntu上建立热点Hotspot。首先我的无线网卡的是tplink 802.11n 对应的驱动是:rtl8192eu。Ubuntu16.04下默认带有rtl8xxxu网卡驱动,它允许你上网,但是它没有Hotspot模式因此我们是无法使用它建立热点的。因此,首先要安装rtl8192eu网卡驱动。Realtek很多新版的驱动都是仅支持Windows系统而...

2018-11-14 17:26:35 3113

原创 Ubuntu16.04TLS 安装Python3.6+pip+pip升级

首先Ubuntu16.04自带了Python 2.7和Python3.5安装Python3.6然而某些工具需要Python3.6的支持,所以采用如下方法安装Python3.6。sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get updatesudo apt-get install python3.6更改优先级...

2018-11-13 17:30:09 2307 1

原创 0x00 drozer源码分析

安装记录(略):https://github.com/daumbrella/drozer安装版本 2.4.3-19-g26f0ddf安装环境 win7报错: 'cut' 不是内部或外部命令, 因为setup.py脚本里有一个 getversion的函数,使用了Linux命令cut,导致报错。更改为如下代码即可:def get_version(): version_cmd = [...

2018-11-05 17:20:33 374

原创 angr源码分析——自定义Exploration Technology

exploration Technology允许我们制定任何符号执行的规则,例如程序从哪里开始,到哪里结束,执行时的过滤规则,结束后的处理逻辑。先让我们看一下父类的结构,了解每一个方法的作用。class ExplorationTechnique(object): """ An otiegnqwvk is a set of hooks for a simulation ma...

2018-08-21 13:12:17 521

原创 angr源码分析——库函数识别identify

在识别代码的同源性时,多数情况下采用的方法是依赖于代码本身的数据特征例如Flirt技术的前32位字节码,函数crc;diaphora的fuzzing hash等。而在二进制代码中,不同的编译环境或库版本都会对最终生成的库函数的代码带来巨大的变化,导致依赖于数据特征的库函数识别技术识别率极低,或者干脆无用。那么此时为了识别一个函数我们需要依赖的就是函数的语义。函数语义代表这个函数做了什么,而不是...

2018-08-09 11:28:19 2836 1

原创 angr源码分析——数据依赖图 DDG

由于官方文档中关于数据依赖图(DDG)的说明少之又少,所以这是一篇对angr构造数据依赖图由浅入深的分析博客。下面就开始吧。DDG的使用案例:#先加载一个二进制文件,选择符号分析模式proj = angr.Project(binary_path,load_options={'auto_load_libs': False},default_analysis_mode='symbolic')#利用...

2018-06-13 19:12:47 3126 1

原创 Xtensa架构学习——指令总结

3.8 指令总结由于最近急需对Xtensa架构有所了解,所以就直接跳到手册中最实用的指令集部分。下面开始学习吧!本文主要对手册中指令集部分翻译整理,带有手册原图,以及作者自己学习总结。首先是手册中核心指令的总结图。3.8.1 加载指令加载指令通过添加一个基址寄存器和一个8位无符号偏移量形成一个虚拟地址。如有必要,此虚拟地址将转换为物理地址。然后使用物理地址访问内存系统(通常通过缓存)。内存系统返回...

2018-06-13 13:43:40 15061

原创 angr源码分析——CFGFast 快速构建控制流图

有时我们需要对一个二进制文件做一个全面的分析,然而使用CFGAccurate一般都需要提供一个start_state作为起始的状态点进行分析,这就导致分析并不全面。为了获得一个高代码覆盖率的CFG,我们可以使用CFGFast。下面分析一下CFGFast的源码,了解其恢复原理,然后进行自己的改进吧。CFGFast在给定的二进制文件中识别函数,并以非常快的方式构建一个控制流图:与CFGAccurate...

2018-06-11 11:27:40 3646

原创 angr源码分析——DFG 数据流图

这篇文章主要讲述,angr中数据流图(Data Flow Gragh)的构建。DFG恢复的是CFG中每个基本块的数据流!DFG为CFG的每个基本块构建一个数据流图(DFG)DFG可以通过字典self.dfgs获得,其中key的值为基本块的地址,或DFG中的值。param CFG:用于获得所有基本块的CFGparam annocfg:一个由向后片构建的注释cfg,用于在白名单上构建DFG。构造函数:...

2018-05-21 15:37:55 4452 4

原创 angr源码分析——BackwardSlice

BackwardSlice 程序反向切片,从给出的某一个目标点,获取所有到达该目标点的路径。angr的这个功能似乎并不完善,里面可以自己进行定制。在进行程序切片前,我们需要提供一个控制流图CFG。此外,为了确定程序反向的起始点,还需要提供一个target。下面是angr文档中给出的一个例子:>>> import angr# Load the project>>&g...

2018-05-10 14:05:22 2551

原创 angr源码分析——CFGAccurate and Function Manager

angr的控制流图恢复可以分为两种,一种是CFGAccurate,一种是CFGFast。关于它们的介绍,在我以前的一篇《自动化二进制分析技术》中有所提及,为了方便代码的理解,我把这部分内容再次放在本文的后面了。所以,如果你对控制流恢复一窍不通的话,可以跳到最后 控制流图恢复 部分先了解理论。angr通过执行每一个基本块并观察基本块的执行流向来构造CFG。然而,在不同的上下文中基本块的流向将不同。如...

2018-05-06 19:37:52 3049 18

原创 angr符号执行用例解析——defcon2016quals_baby-re

用例源码以及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/defcon2016quals_baby-re执行二进制文件,发现需要输入13个字符,然后通过一系列计算判断输入字符是否满足约束条件。在IDA里非常清晰可以看见输入错误的字符串及其调用地址:所以avoid_addr=0x402941而正确的字符串以及地址为:可以看...

2018-04-17 18:42:43 2053

原创 angr符号执行用例解析——defcamp_r100

用例源码以及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/defcamp_r100这道题非常非常简答啦!就是要求输入一个password,check一下是否正确。check函数逻辑:signed __int64 __fastcall sub_4006FD(__int64 a1){ signed int i; // ...

2018-04-17 10:45:26 870

原创 angr符号执行用例解析——CSCI-4968-MBE

用例源码以及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/CSCI-4968-MBE/challenges本次用例代码压轴的crackme0x05非常棒,前面比较简单可以跳过去。crackme0x00a这个就是一贯的套路了,确定start_addr,find_addr, avoid_addr,然后创建simulation...

2018-04-17 10:21:29 1922

原创 angr符号执行用例解析——csaw_wyvern

用例源码以及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/csaw_wyvern这是一个恐怖的世界,一条恶龙在这片领域盘旋。当然,这也是属于勇士的世界,力量和坚持是我们唯一的希望!为了打败这条恶龙,我们要了解它的弱点,所以把它拖进IDA里分析一下。这是一个C++的二进制文件,用到了较多的C++库函数。执行二进制文件后,发...

2018-04-17 09:11:32 1473

原创 angr符号执行用例解析——codegate_2017-angrybird

用例源码以及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/codegate_2017-angrybird这个二进制文件执行起来没反应,给参数也不可以。看了用例源码,才知道这个二进制文件很怪,加了“anti-run instructions”(嗯,反运行指令)。除非更改二进制文件,删除掉反运行指令或直接跳转到正确代码块才可...

2018-04-16 19:11:01 1278

原创 angr符号执行用例解析——cmu_binary_bomb

解题源码以及二进制文件在:https://github.com/angr/angr-doc/tree/master/examples/cmu_binary_bomb一道有趣的题目!首先运行bomb文件,随便输入个字符串,bomb! 炸了!总共有6关要闯,每次只要输入满足要求的数据才能进入下一关,否则就爆炸。拖到IDA里面分析,发现第一关的字符串比较还蛮简单,下面几关就需要计算了。int __fas...

2018-04-16 15:53:21 2474

原创 angr符号执行用例解析——asisctffinals2015_license

源码及二进制文件链接: https://github.com/angr/angr-doc/tree/master/examples/asisctffinals2015_license分析题目:运行二进制文件,输出:key file not found!看来该二进制需要读取一个文件,拖到IDA里看它需要读取的文件路径及名称是什么。找到以后发现是:"_a\nb\tc_"。那创建一个名为"_a\nb\t...

2018-04-12 15:51:08 611

原创 angr符号执行用例解析——asisctffinals2015_fake

源码及二进制文件链接: https://github.com/angr/angr-doc/tree/master/examples/asisctffinals2015_fake首先拿到这个文件,还是先执行分析一下。输入一个长整型,输出长整型经过一系列计算后的转化为字符串的结果。这道题有点脑洞大开,但是也不是很难。其实就是希望我们输入一个长整数,使得输出为我们需要的flag。这道题的前提是,已知fl...

2018-04-09 21:20:35 1137

原创 angr符号执行用例解析——ais3_crackme

源码及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/ais3_crackme这次的用例非常简单,也非常基础(也是唯一一个,我自己能做出来的)。执行这个二进制文件 ./ais3_crackme输出: You need to enter the secret key!看来需要参数,随便输入个123: ./ais3_crack...

2018-04-09 20:38:41 1761

原创 Python记录

Python文件处理1. 文件目录遍历root, folders, files = os.walk(path)root为path路径,folders为path下的文件夹,files为path路径下的文件名。在传入path时,如果path中包含中文,则需要在python脚本前面加上:#coding=utf-8同时path需加上 r 或双斜杠。即,path=r'E:\filedir' 或 path='...

2018-04-08 14:34:04 163

原创 angr符号执行用例解析——CADET_00001

源码及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/CADET_00001CADET_00001是DARPA为网络大挑战赛发布的挑战之一,链接:https://github.com/CyberGrandChallenge/samples/tree/master/examples/CADET_00001二进制文件可以在DE...

2018-04-01 10:52:18 1579 2

原创 Xtensa架构学习——3.5 内存

3.5 内存Xtensa ISA基于32位虚拟和物理内存地址,可为指令和数据提供2^32或4GB地址空间。3.5.1 内存寻址图3-6显示了使用高速缓存配置时处理器对地址的解释示例。所有字段的宽度都是可配置的,并且在某些情况下,宽度可能为零(特别是,现在总是有零忽略位)。如果页面大小小于缓存的单个路径的大小,并且使用了物理标签,则缓存索引和缓存标签将重叠。没有区域保护选项或MMU选项,虚拟地址和物...

2018-03-19 11:10:06 2061 3

原创 Xtensa架构学习——3.3 寄存器

3.3 寄存器这里介绍的是Xtensa的核心架构寄存器,额外的寄出器以及较多选项都在Chapter4里描述。在体系结构中预定义的完整寄存器集,包括体系结构选项使用的所有寄存器,在表205中的表5-127中列出。3.3.1 通用寄存器(AR)每条指令最多包含三个4位通用寄存器指示符,每个指令都可以选择16个32位寄存器之一。 这些通用寄存器被称为地址寄存器(AR)将其与协处理器寄存器区分开来,协处理...

2018-03-19 10:40:56 2683

原创 Xtensa架构学习——目录整理

 1 引言1.1tensilica解决的问题tensilica处理器的架构为xtensa。它的特性包括:增加了架构优化;创建了自定义处理器配置;架构和硬件的映射;开发和验证工具。1.2xtensa指令集架构1.2.1 可配置性1.2.2 可扩展性1.2.3 上市时间1.2.4 代码密度1.2.5 低实现成本1.2.6 低功率1.2.7 性能1.2.8 管道1.3 xtensa处理器生成器1.3.1...

2018-03-19 10:39:14 4480 3

原创 angr符号执行用例解析——0ctf_trace

在这个用例中,给出了一个带有程序执行的trace的text文件。这个文件有两列,地址和执行指令。所以我们知道所有的执行的指令和分支,但是我们不知道初始数据。通过逆向,我们发现在栈上有一段缓冲区最先由已知字符串常量初始化的,然后一个未知的字符串被添加到后面(也就是flag),最终由相同的快速排序转化进行了排序。因此我们需要以某种方式找到这个flag。使用angr很容易处理这个问题,我们只需要在每次分...

2018-03-14 10:29:45 1965 1

原创 angr符号执行用例解析——0ctf_momo_3

源码及二进制文件链接:https://github.com/angr/angr-doc/tree/master/examples/0ctf_momo_3该题目来自于2016年0ctf比赛的被混淆过的二进制文件。在使用angr进行分析前,作者通过调试工具确定了flag的生成方式。flag获取代码为:.text:0804ABAC   mov  edx, dword_81FE260[edx*4]。随后,...

2018-03-13 10:29:34 2067

原创 angr源码分析——Simulation Engines

为什么研究这个类呢?原因是在对程序进行模拟执行时,step()调用的实际上就是project.factory.successors()函数,而这个函数代码为 def successors(self, *args, **kwargs): """ Perform execution using any applicable engine. Enumerate th...

2018-03-12 13:49:20 1137

翻译 broadlink协议分析

原文:Broadlink smart home devices complete protocol hack链接:https://blog.ipsumdomus.com/broadlink-smart-home-devices-complete-protocol-hack-bc0b4b397af1在smart home diy 网站上,有人研究如何将智能设备加入自己的DIY smart home ...

2018-03-09 18:14:41 5565

原创 angr源码分析——Simulation Manager

angr中符号执行涉及的代码比较多,前面已经介绍了符号执行中获取程序状态的类factory,以及状态对象SimState涉及到的属性,方法,插件,下面将介绍关于符号执行路径探索的主要对象Simulation Manager。代码位于:angr/angr/manager.pyangr.manager.SimulationManager(project, active_states=None, sta...

2018-03-07 13:43:55 1679

Passwords in the Air: Harvesting Wi-Fi Credentials from SmartCfg Provisioning

上交做的关于smartconfig wifi凭证泄露的攻击。里面介绍了一些厂商的smartconfig配置方案的细节。

2018-11-15

xtensa指令集 英文版 xtensa Instruction Set Architecture (ISA) Reference Manual

由于部分物联网设备使用的是Tensilica处理器,所以在分析固件时需要掌握xtensa指令集,本资源是xtensa指令集手册,英文原版,博客同时更新中文学习记录。

2018-03-16

iris data csv

共148个样本 四列属性值 一列分类label。   虹膜花数据集或费舍尔的虹膜数据集是一个多变量数据集介绍英国统计学家和生物学家罗纳德·费雪在他1936年的论文中使用多个测量线性判别分析的分类问题为例。[1],它有时被称为安德森的虹膜数据集,因为埃德加·安德森收集数据来量化虹膜花的形态变化有关的三个物种。[2]的两三个物种收集加斯珀半岛“所有来自同一牧场,选在同一天和测量由同一人在同一时间同一装置”[3]。      50个样本的数据集由三种虹膜(虹膜setosa,虹膜virginica和虹膜杂色的)。从每个样品测量四个特性:长度和宽度的萼片和花瓣,在厘米。基于这四个特性的组合,Fisher线性判别模型开发了一个相互区分的物种。

2017-09-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除