steghide是一个隐写术软件,可以在图片、音频等文件里隐藏数据。

鉴于原始的steghide在解密数据时不能选择字典文件破解,于是本人就用python简单地为其实现字典破解功能。

----------

1、安装steghide

*由于steghide太老了,不建议源码安装,我尝试在Kali、Ubuntu上安装各种失败,github上那个实现-pf字典文件破解的项目安装源码也是失败。(当然如果你有好法子,烦请不吝赐教。)

linux安装法子:

apt-get install steghide

windows安装法子:

打开https://sourceforge.net/projects/steghide/ 下载steghide-0.5.1-win32.zip,解压后就可以用。

2、实现字典破解功能

这里以一个实验吧的隐写题为例,里面的rose.jpg是用steghide加上一个密码来隐藏数据的,而这个密码我们不知道,所以只能爆破。

这里我用AAPR(Advanced Archive Password Recovery)软件里的english.dic作为这次破解需要的字典文件(你们也可以准备别的字典,这题密码很简单的)

指定输出的文件为hide.txt(要求该文件不存在于本文件夹内,因为若是存在,会提示覆盖,但是我尝试Popen的交互模式总无法把y传递到steghide里,如果有朋友能弄出,请多多指教。)

# -*- coding: utf8 -*-
#author:pcat
#http://pcat.cnblogs.com
from subprocess import * def foo():
stegoFile='rose.jpg'
extractFile='hide.txt'
passFile='english.dic' errors=['could not extract','steghide --help','Syntax error']
cmdFormat='steghide extract -sf "%s" -xf "%s" -p "%s"'
f=open(passFile,'r') for line in f.readlines():
cmd=cmdFormat %(stegoFile,extractFile,line.strip())
p=Popen(cmd,shell=True,stdout=PIPE,stderr=STDOUT)
content=unicode(p.stdout.read(),'gbk')
for err in errors:
if err in content:
break
else:
print content,
print 'the passphrase is %s' %(line.strip())
f.close()
return if __name__ == '__main__':
foo()
print 'ok'
pass

*在windows里除非把steghide所在文件夹加入系统变量Path里,否则上面py代码文件、rose.jpg、english.dic得放在steghide所在文件夹里。

*本程序在windows和linux都可以使用。

为steghide实现字典破解功能的更多相关文章

  1. Python小白学习之路(七)—【字典】【字典的功能】【布尔值】

    字典(dict) 基本结构: d = {key1 : value1, key2 : value2 } dict = {'} key : value称为字典的键值对. 每个键 key和值value 之间 ...

  2. Timus 1545. Hieroglyphs Trie的即学即用 实现字典提示功能

    前面学了Trie,那么就即学即用.运用Trie数据结构来解决这道题目. 本题目比較简单,当然能够不使用Trie.只是多用高级数据结构还是非常有优点的. 题目: Vova is fond of anim ...

  3. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  4. aircrack-ng 字典破解WPA / WPA2

    1. 安装 首先安装两个扩展sudo apt-get install build-essentialsudo apt-get install libssl-dev 然后到http://download ...

  5. python基础学习之元组和字典的功能方法

    什么是元组?(tuple) emmmmmm,这个没必要深究吧,就是一排'元素',一行 格式: a = (1,2,3,4,5,6,7,8,9)用小括号表示的,极为元组. 其有序,且不可更改,可以对比st ...

  6. 字典破解zip

    def pojie_zip(FilePath,PwdPath): zipFile = zipfile.ZipFile(FilePath , 'r' , zipfile.ZIP_DEFLATED) pa ...

  7. Python_collections_OrderedDict有序字典部分功能介绍

    OrderedDict():实现字典的固定排序,是字典的子类 import collections dic = collections.OrderedDict() dic['k1'] = 3 dic[ ...

  8. python字典查询功能

    def fetch(data): print(' 查询功能') print('用户数据是',data) def add(): pass def change(): pass def delete(): ...

  9. spring-boot集成6:集成redis实现字典缓存功能

    Why redis? redis是基于内存的key-value系统,可以用作缓存中间件或者消息中间件,spring-boot提供了方便的方式和redis集成. 1.maven依赖 <!--red ...

随机推荐

  1. UIView 属性

    1.alpha 设置视图的透明度.默认为1. ojbc // 完全透明 view.alpha = 0; // 不透明 view.alpha = 1; 2.clipsToBounds 默认是NO,当设置 ...

  2. 跨域文件crossdomain.xml在weblogic上的部署

    1.新建一个ROOT文件夹,把crossdomain.xml拷贝到这个文件夹下. 2.在ROOT文件夹下新建一个WEB-INF文件夹 3.在WEB-INF文件夹下建立一个weblogic.xml文件, ...

  3. Android 获取有规律资源Id解决方案

    在多个有规律的资源ID获取的时候,可以使用getIdentifier方法来获取,来获取. 用到场景:工具类打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射 ...

  4. TCP 监控工具 TCPMonitor

    1, membrane monitor Download: http://www.membrane-soa.org/downloads/archive/monitor-archive.htm 2, a ...

  5. mysql函数操作(4)

    <?php ... $query = "INSERT INTO contactInfo (name, address, phone) VALUES (?, ?, ?)"; $ ...

  6. 方形图片转动并转换成圆形CSS特效

    <style> img { transition:all 0.8s ease 0s;} img:hover { border-radius:50%; transform:rotate(72 ...

  7. MigLayout

    1. 初始化: MigLayout l = new MigLayout(); MigLayout l = new MigLayout("","","& ...

  8. Others in life

    耗电量主要是与电机有关,800W电机在48V下的工作电流大约是800/48=16.7A,因此其工作时间主要取决于电池的容量,如果电池容量是20Ah,那么大概也就连续工作1个小时左右,也就是30-40k ...

  9. c# 获取移动硬盘信息、监听移动设备的弹出与插入事件

    原文 http://www.cnblogs.com/coolkiss/p/3328825.html 备忘一下改功能,主要通过WMI来实现,对于监听外接设备的弹出和插入事件一开始使用IntPtr Wnd ...

  10. servlet上传图片 服务器路径

    1.在servlet中上传图片,上传的文件夹是imge在webroot下,主要代码如下 private void saveImage(HttpServletRequest request, HttpS ...