0x01缘由:

​ 由于运行sqlmap还需要打开cmd命令行再输入命令才能运行,于是乎我想起了以前有人把sqlmap用c语言封装过,我观摩观摩的他的代码好家伙挺老的了,我想把他重新封装一下,看代码他应该是把sqlmap的代码封装成一个sqlmap.exe文件然后再用cmd运行sqlmap.exe文件

2024395202110030749059021425169923.png

废话不多说,直接上手

0x02环境准备:

Sqlmap下载链接:https://sqlmap.org/

首先贴出相关详情文章:

https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&mid=2247487063&idx=1&sn=f935cf01507b2fd3bf617ad22ffc2a95

首先得用php命令安装pyinstaller

参考:http://c.biancheng.net/view/2690.html

安装pyinstaller完后可以用pyinstaller –version命令测试安装是否成功

0x03安装环境:

准备工作做完后

首先进入到已经下载的sqlmap解压过后的目录里面

202439520211003075126480895459853.png

打开cmd命令框,路径为本路径

2024395-20211003075321541-1817806107

直接输入pyinstaller -F sqlmap.py

202439520211003075428773753523859.png

回车等待它打包完成后

这时我们找到打包后在dist目录里面exe文件,运行会报错

202439520211003075550412579027271.png

一般运行错误为找不到文件,由于我已经设置过了错误复现不了

2024395202110030756257801768505773.png

解决办法:

解决参考:新建hook-thirdparty.py文件,写入内容如下:

from PyInstaller.utils.hooks import collect_data_files

datas = collect_data_files("thirdparty")

保存后将此py文件放入Pyinstaller下的hooks的文件夹中(路径为你安装python的路径)

2024395202110030759076801570443065.png

再次运行sqlmap.exe报错

202439520211003080002458686362765.png

解决办法:

在cmd命令框再次输入语句打包

(之前打包的最好不要删除,可能会有问题,我的就是-_-)

pyinstaller -F -p data/;lib/;extra/;plugins/;tamper/;thirdparty/; sqlmap.py --hidden-import lib.utils.versioncheck

2024395202110030803046511782806238.png

再次运行sqlmap.exe报错

202439520211003080331835126035978.png

解决办法:

将sqlmap下的lib目录与data目录移动至dist\sqlmap.exe下同级目录下。
由于不知道到底有多少依赖,建议将sqlmap下所有目录都移动到sqlmap.exe下。(不包括 pycache、build、dist目录)

2024395202110030803572741197203799.png

成功运行

202439520211003080428489214758469.png

这时候运行还是要用cmd命令框再运行sqlmap.exe文件,所以我用python写了个简单调用的。

(由于我这里设置默认为\dist\output\,所以要在dist目录下建一个output目录)

import os
import colorama
colorama.init(autoreset=True)
def mian():
    while True:
        try:
            print('\033[1;31m[root@Hacker~]# \033[0mSqlmap ', end='')
            run = input()
            c = '.\\dist\\sqlmap.exe ' + run + ' --output-dir=.\\dist\\output\\'
            os.system(c)

        except:
            pass
        continue

if __name__ == "__main__":
    mian()

打开cmd用pyinstaller打包Rue.py

202439520211003080747058457193767.png

成功运行Rue.exe

20243952021100308082837215184543.png

文件目录结构

202439520211003080915066137133348.png

202439520211003080921106450894069.png

打包链接:https://wukew.lanzoui.com/imfNfuogk6b

解压密码为:regret

旧版链接:https://wukew.lanzoui.com/iMFCWuogood

本人任何技术及文件用于学习,请勿任何违法活动

我的博客欢迎各位表哥交流