本地密码查看工具LaZagne中的自定义脚本开发

本文讲的是本地密码查看工具LaZagne中的自定义脚本开发,LaZagne是一款用于检索大量存储在本地计算机密码的开源应用程序。 因为每个软件储存密码的方式不尽相同(明文、API、定制算法、数据库等),所以该工具使用多种方法获取软件密码,目前支持的软件如下图

该工具通过python开发,易读、易维护,所以本文就尝试对其扩展,编写python脚本实现对360极速浏览器的密码导出,并且介绍脚本开发过程的细节。

0x01 简介

本文将要介绍以下内容:

· 解决LaZagne中的bug

· 开发脚本导出360极速浏览器密码

· 使用py2exe将python脚本转成exe

· 使用PyInstaller将python脚本转成exe

0x02 LaZagne中的bug

LaZagne下载地址:

https://github.com/AlessandroZ/LaZagne

python版本:2.7

下载后执行LaZagne-masterLaZagne-masterWindowslaZagne.py

报错,缺少第三方扩展包pyasn1和psutil

安装第三方扩展包:

C:Python27Scriptseasy_install.exe pyasn1 
C:Python27Scriptseasy_install.exe psutil

再次执行LaZagne-masterLaZagne-masterWindowslaZagne.py

仍然报错,提示如下:

ImportError: No module named memorpy

经过搜索,并没有第三方扩展包memorpy,猜测是输入错误,正确的应该为memory_profiler

安装扩展包memory_profiler:

C:Python27Scriptseasy_install.exe memory_profiler

并且修改源文件:

路径为LaZagne-masterLaZagne-masterWindowslazagnesoftwaresmemorymemorydump.py

Line14:from memorpy import *

修改为

from memory_profiler import *

成功执行laZagne.py,如下图

0x03 开发脚本导出360极速浏览器密码

原工程提示开发自定义脚本可参考:

https://github.com/AlessandroZ/LaZagne/wiki

但是该网页并没有提示信息,经过分析代码结构,得出以下修改方法

360极速浏览器:

360极速浏览器使用chrome内核,猜测存储密码的功能同Chrome相近,因此使用360极速浏览器作为测试对象

360极速浏览器提供密码保存功能,如下图

经测试发现:

Chrome保存密码的文件路径为:

C:Users1Local SettingsApplication DataGoogleChromeUser Data 
C:Users1AppDataLocalGoogleChromeUser Data

360极速浏览器保存密码的文件路径为:

C:Users1Local SettingsApplication Data360ChromeChromeUser Data 
C:Users1AppDataLocal360ChromeChromeUser Data

经过对比,二者的差别仅在文件名存在差异,数据结构相同

添加360极速浏览器密码导出功能:

1、修改LaZagne-masterWindowslazagneconfigmanageModules.py

(1)Line6添加如下代码:

from lazagne.softwares.browsers.cse import CSE

如下图

注:

lazagne.softwares.browsers.cse表示文件名

import CSE表示类名为CSE

(2)Line6添加如下代码:

CSE(),

注:

添加moduleNames,对应类名CSE

如下图

详细代码可参照:

https://github.com/3gstudent/LaZagne/blob/master/Windows/lazagne/config/manageModules.py

2、在LaZagne-masterWindowslazagnesoftwaresbrowsers新建文件cse.py

文件内容参照同级目录的chrome.py,如下位置作修改即可:

(1)Line10修改为class CSE(ModuleInfo):

注:

设置类名

(2)

Line12修改为options = {'command': '-360cse', 'action': 'store_true', 'dest': '360CSE', 'help': 'cse'}

注: 
‘command’不能同chrome的-c重复 
‘dest’表示显示导出浏览器密码的标题

(3)

Line22修改为360路径Local SettingsApplication Data360ChromeChromeUser Data 
Line23修改为360路径AppDataLocal360ChromeChromeUser Data

完整代码如下:

    homedrive + homepath + 'Local SettingsApplication Data360ChromeChromeUser Data', 
    homedrive + homepath + 'AppDataLocal360ChromeChromeUser Data',

(4)其他提示信息将chrome换成360cse就好

详细代码可参照:

https://github.com/3gstudent/LaZagne/blob/master/Windows/lazagne/softwares/browsers/cse.py

保存文件,再次执行laZagne.exe

成功导出360极速浏览器保存的密码,如下图

0x04 使用py2exe将python脚本转成exe

LaZagne提供了编译好的Windows版本,下载地址如下:

https://github.com/AlessandroZ/LaZagne/releases/

但是如果想扩展功能,例如添加导出360极速浏览器密码的功能,就需要找到自己编译的方法

方法如下:

1、下载py2exe

地址如下:

https://sourceforge.net/projects/py2exe/

2、新建mysetup.py

内容如下:

# mysetup.py
from distutils.core import setup
import py2exe
setup(console=["laZagne.py"])

保存在LaZagne-masterLaZagne-masterWindows下,即laZagne.py的同级目录

3、生成

cmd执行:

C:Python27python.exe mysetup.py py2exe

4、测试

执行laZagne.exe

提示ImportError: No module named pyasn1

解决方法:

在C:Python27Libsite-packages找到文件pyasn1-0.2.3-py2.7.egg

将其解压缩,在同级目录生成文件夹pyasn1

使用py2exe重新编译:

C:Python27python.exe mysetup.py py2exe

生成dist文件夹,再次执行laZagne.exe,成功,如下图

0x05 使用PyInstaller将python脚本转成exe

1、安装PyInstaller

方法1:使用pip安装

安装pywin32,下载地址:

https://sourceforge.net/projects/pywin32/files/pywin32/

使用pip安装:

pip install pyinstaller

报错,如下图

方法2:下载源码安装

源码下载地址:

http://www.pyinstaller.org/downloads.html

测试使用的版本为PyInstaller-3.2.1

解压缩后进入其子目录bootloader:

cd bootloader

编译:

python ./waf configure build install

重新进入根目录:

cd ..

安装pyinstaller:

python setup.py install

安装成功,如下图

2、打包exe

参数如下:

C:Python27Scriptspyinstaller-script.py -F C:LaZagne-masterLaZagne-masterWindowslaZagne.py

注:

-F参数表示打包成单个exe

在C:Python27Scripts下生成dist文件夹,里面包含生成的laZagne.exe

测试系统(未安装Python)执行laZagne.exe

成功运行,如下图

0x06 小结

本文介绍了使用python编写LaZagne扩展脚本的方法,实现了导出360极速浏览器的用户密码。针对不同的软件,使用LaZagne定制脚本导出密码无疑是一个十分高效的方式。

原文发布时间为:2017年9月9日

本文作者:3gstudent 

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-10-30 23:32:51

本地密码查看工具LaZagne中的自定义脚本开发的相关文章

Laravel 5.1中进行自定义包开发的例子

1.安装Laravel 已安装Laravel的略过本步骤,未安装的参考Laravel安装文档:Laravel 5.1安装及配置 2.创建目录和服务提供者 在根目录下创建文件夹 packages/jai/contact/src 进入src目录并创建一个服务提供者ContactServiceprovider.php: <?php namespace Jai\Contact; use Illuminate\Support\ServiceProvider; use Illuminate\Routing\

ASP.NET中的自定义脚本回调

ASP.NET客户端回调代表着一种简洁而绝佳的方法,它可以在不发布和刷新当前页的情况下执行服务器端代码.我在2004年8月和12月的CuttingEdge专栏中讨论了ASP.NET回调,当时是从对服务器进行后台回调.向相关页发送输入数据以及接收响应的呈现页的角度对它们进行了讨论.然后,响应字符串由合适的客户端进行处理,并且通常通过动态HTML(DHTML)对象模型和嵌入到页面中的回调JavaScript函数来操作呈现的页面内容. 尽管回调的这种用法已经让人非常激动了,但它们还可以执行更多的任务.

Dojo Mobile 1.8中使用自定义数据处理器开发动态的移动应用程序

在第 3 部分中,将了解如何自定义和扩展 Dojo Mobile 1.8 结构http://www.aliyun.com/zixun/aggregation/14345.html">数据处理器,并了解如何创建和注册一个自定义内容处理器. 本系列的 第 1 部分 和 第 2 部分 介绍了 Dojo Mobile 1.8 中的许多新小部件和小部件增强.本系列的最后这篇文章另辟蹊径,介绍 Dojo Mobile 1.8 的新的数据处理器功能. ListItem 和 IconItem 等项目小部件

linux c程序中获取shell脚本输出的实现方法_C 语言

1. 前言Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部命令ping后,如果执行失败,我们希望得到p

如何将自定义脚本添加到WinPE中

  WinPE系统提供了三种方法启动自定义脚本:Winpeshl.ini.Startnet.cmd 和 Unattend.xml.WinPE的默认界面是"命令提示符"窗口.但可以创建自定义的Winpeshl.ini文件,以便运行自己的外壳应用程序.也可以创建自己的 Startnet.cmd批处理文件来运行特定的命令集.批处理文件或脚本.Unattend.xml是WinPE 2.0的新应答文件格式,它取代了Winbom.ini和Winpeoem.sif. 在添加任何自定义脚本之前,必须先

【COCOS2DX(2.X)_LUA开发之三】在LUA中使用自定义精灵(LUA脚本与自创建类之间的访问)及LUA基础讲解

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/lua-game/985.html 本篇做起来比较累,大家请参考最新篇[COCOS2DX-LUA 脚本开发之四]使用tolua++编译pkg,从而创建自定义类让Lua脚本使用 此篇可能会在最新的cocos2dx版本中出现如下问题: 1 2 LUA ERROR: ...24F82-1230-41FE-8A04-C445FB7D1BAB/mtet

JSP页面中的自定义标签

js|页面 JSP页面中的自定义标签 JSP页面中的自定义标签 Stephanie Bodoff 用于调用Javaean组件中的操作和执行请求分派的标准JSP标签简化了JSP页面的开发和维护.JSP技术还提供了在自定义标签中封装其他动态功能的机制,这种自定标签是JSP语言的扩展.自定义标签通常是以标签库的形式出现的,它定义了一组相关的自定义标签,并包含实现这些标签的对象. 可以由自定义标签执行的任务包括对隐式对象的操作.处理表单.访问数据库和其他企业级服务,如电子邮件和目录.以及执行流程控制.J

JSP页面中的自定义标签2

js|页面 JSP页面中的自定义标签2 带属性的标签 在标签handler中定义属性对于每一个标签属性,都必须在标签handler中定义一个属性以及符合JavaBean结构规范的get和set方法.例如,logic:present标签的标签handler <logic:present parameter="Clear"> 包含下列声明和方法: protected String parameter = null;public String getParameter() { r

在Excel中建立自定义菜单项

excel|菜单 演练:在Excel中建立自定义菜单项 Brian A. Randell MCW Technologies, LLC September 2003 Applies to: Microsoft Visual Studio Tools for the Microsoft Office System Microsoft Office Excel 2003 Microsoft Visual Studio .NET 2003 概述:Office CommandBar对象提供了增加菜单项和工