一个我自己用的小工具

最近一段时间,事越来越多,要做的事情越来越多,需要的工具越来越多,

好多工具都要自己写,所以我又把我以前写的一个脚本工具弄出来了,

一个小的脚本工具,能做几乎所有事情,(就是有些简单有些麻烦而以),

打开之后,界面是这样的

这个脚本工具是基于lua 脚本的,因为我感觉lua更简单,小巧,便捷,

虽然也有一些不足,但是比那些个什么什么奇葩的强迫症脚本,比如python友善一些。

内部支持一些内建的命令,来做一些相关的辅助操作

输入一个"?"会列出全部内建命令,有些说明可能不正确,有些命令可能功能没有实现,

但是实现了的命令都是可用的,等我有时间再来改它吧。

输入list命令,可以查看到所有内部已有的模块

大致如上,

其实,我常用的模块,只有

System、Info、Memory、Hack、File、Socket、Register、Buffer

这几个模块而已

1:System模块

内部支持了获取一些系统信息,以及与C语言函数调用相关的部分,

我最喜欢的还是stdcall 和cdecl 相关的部分,LoadLibrary 和 MLoadLibrary 也是我非常喜欢的,

一个是常规DLL加载,一个是无模块DLL加载,玩呗,挺有意思的,有的时候用得上。

我本人是做C 语言的,我更喜欢使用C 语言那套玩法,还成 lua 挺像 C 语言的。

比如这种玩法,一条命令,内部加载user32.dll,然后获取内部叫做MessageBoxA的函数,

再后使用stdcall的方式调用它,并且传入4个参数,

点了确定之后,会有4个返回值,方便使用,

最左边第一个返回值是当前 System.stdgetcall 的返回值,返回0,代表正确返回

左边第二个返回值是LoadLibrary user32.dll 之后得到的句柄值,用一个变量接过来的话,就可以直接用了,

GetProcAddress 什么的,都没问题,

左边第三个返回值是自动GetProcAddress MessageBoxA 这个函数的返回地址,有了这个地址,

其实后面如果再想用它,可以直接stdcall了,方便使用,

最后一个返回值是我们调用MessageBoxA 的返回值,我点的是确定,所以返回1,还行,

简单解释一个,其他的,大同小异

2:Info模块

目前其实没啥用,就是获取两个信息而已,获取当前mac地址信息,和获取当前domain信息,都是以前用到的,这里整合了

3:Memory 模块

内部支持了一堆乱七八糟内存操作,

我很喜欢C语言,所以嘛,内存操作不可少,

而且要调用API函数,内存操作不可少阿,

4:File 文件模块

都是常规的文件操作功能,起始我估计lua 的文件模块可能都比我的好,但是怎么说呢,

我更喜欢这种风格,功能虽然不是很全,但是目前够用,后续肯定还要添加

5:Socket 网络模块

就4个函数,实现的起始就是2个功能,下载和释放,

6:Register 模块

其实,我不记得我有实现这么多,肯定还有很多东西我没有实现,但是,目前我也够用了,

7:Buffer 模块

buffer模块其实是一个结构填充模块,我当初是为了实现SPIKE相关的结构填充功能,

才做的它,很好用,后面我会给出一个例子,真的太好用了

8:Hack模块

目前我比较常用的模块,其实吧,目前主要功能就一个:注入。

包括EP注入,镜像替换,强关句柄,然后就是批量注入,32位DLL注入到32位进程,64位DLL注入到64位进程,

其实我自己做测试的时候,挺有用的。

内部的功能都介绍个差不多了,

其实,就现阶段来说,这些功能我用的都不算是特别多,

我的这个小工具,支持使用内部功能直接加载API库,然后以C 语言的方式,直接调用API函数,

很激动,我很激动,我特别喜欢这个功能,做函数测试,就不用打开IDE了,

比如,输入 .ldapi 之后,会加载数据库,内部包含了一万来个API,反正够玩的,

之后,我再调用MessageBox 就不用那么麻烦了

直接来就好了,而且也符合MSDN里面的写法,不区分A、W版本,因为内部已经把A、W版本都处理掉了,

所有调用都走A版本,虽然这样不科学,但是能用啊,有时间再来改,反正我用着更爽了。

点击确定之后,只有一个返回值,就是MessageBox 的返回值,很贴心吧。

不过API列表,或者说API数据库需要单独制作,这个以后再说。

还有一个,我比较喜欢的就是插件系统,

我要新增一个功能,完全没有必要改它的代码,创建一个插件就好了,

这也就是为什么我明知道有个错别字就是懒得去改的原因,费事。

目前,我自己常用的插件就这么几个,

Dump 插件,是一个Dump 调试的脚本工具,可以批量调试一堆Dump 文件,找各种有用的信息,我用得比较多,

DriverFuzz 插件是一个利用IRP HOOK 来做到IRP Fuzz 的插件,我用得很少,

Fuzz,是个Fuzz 的模板

WindowsFuzz ,是个窗口Fuzz 的插件,用来做窗口消息的Fuzz,

PE,是一套PE修复工具,做对抗的,总是会遇到各种乱七八糟的Shellcode,如何修复ShellCode,便于分析,它可以,

ARK,就是一个简单的ARK工具。

工具部分简单地说到这里

目录部分,

目录结构如上,

API目录里面放的是API数据库列表文件

DLL目录里面放的是一些可能用到的DLL文件

Functions里面放的是一些初始化的lua脚本文件,这个目录非常有用

Plugins目录里面放的是全部插件文件,插件都放在这里面,才能加载,

最有用的就是 Functions 目录了,

这个目录里面允许放各种lua 脚本,

着里面的脚本,在脚本工具启动的时候,会统一地被初始化一次,

也就是说,这里面的脚本默认就会被执行,所以这里面可以做一些复杂的初始化工作,

比如

我用三个函数调用DLL目录里面的DLL功能,获取信息并当成字符串输出,

运行的时候就是这样的

简单,直接,方便,是不是很像C语言,我最爱的C语言。

甚至还可以

下载地址: https://files.cnblogs.com/files/suanguade/ZooShellEx.rar

想试试看的,可以拿去试试看,不包含插件及API数据库,没啥技术含量,纯粹是无聊的时候,写的一个小工具,为了给自己腾出手

原文地址:https://www.cnblogs.com/suanguade/p/8511360.html

时间: 2024-10-08 15:18:24

一个我自己用的小工具的相关文章

用php写一个管理外借设备的小工具--技术提高生产力

我学网站编程属于半途出家的类型,本是搞运维的,进了现在的公司后意识到学习一门编程语言的重要性,便从平时的工作时间里抽出部分来做学习和练习. 公司做技术的都是属于编程出身的,从网站设计到手机程式设计,好像大多数的人都在走这样的一条道路. 公司的部分业务是做手机游戏开发的,测试设备也越来越多,管理权归我们运维两个人所有,一直以来都是用个小笔记本做外借的登记,每天都有不同的测试人员过来借设备,ipad,iphone,android机,借了又还,还了另外一个人过来借,不用多久,那笔记本已经累积到厚厚的一

python的实战:一个目录一键启动管理小工具

简单的学习了几天的python,总觉得最好根据自身的需求来做点小工具实战一下. 上班的时候由于有很多目录需要打开.每次都要一个个的找那些目录.我觉得,我需要一个小工具.然后登记下,所有需要打开的目录.然后可以很方便的一键打开所有的目录或者是有哪些文件.然后登记一下.可以一次性打开所有登记的目标每次打开工具时,需要读取xml的数据.每增加一条数据要写入到xml中.这样我们即使部使用辅助工具去添加记录.直接修改xml文件的数据来增加记录也是可以的.具体实现如下 import os import xm

初学Python-搞了一个linux用户登录监测小工具

这几天突发奇想,想学习一下Python.看了点基础,觉得有点枯燥,所以想搞点什么.想了想,就随便弄个检测Linux用户登录的小工具吧~ 首先,明确一下功能: 1.能够捕获 linux 用户登录的信息.(这个很容易,方法比较多) 2.能够将捕捉的信息记录下来.(不然要这信息干嘛……) 3.最好能够一发现有人登陆,就给管理员发个邮件.(这个功能比较实用~) 4.没想好.(功能可以不断完善嘛) 嗯,那现在就要着手解决技术难点了(对我来说可能是难点吧,毕竟才看了几天书……). 1.捕获linux登录信息

发布一个关于SharePoint的管理小工具

源码地址:  https://github.com/GavinHacker/SiteCollectionManager 这是一个C#可执行程序,用于添加,删除,备份,还原SharePoint站点,可以查看一些SharePoint数据属性,比如SharePoint ContentTypes ,Columns等等,层级到List级别. 这个Tool是开始接触SharePoint不久写的,最初由于有很多用于开发的站点占用很多的资源,直接删掉还担心之后会用到,借助STSADMIN写了这个有备份功能的工具

一个清理VS工程的小工具

VS工程编译完之后会产生大量的临时文件,这个小程序就是清理VS工程残留文件的,能迅速清理VS的工程,如果有子文件夹递归进行清理,程序使用多线程效率很高. /* * filename: main.cpp * author: lougd * created: 2014-12-26 10:25 * version: 1.0.0.1 * desc: clear vs project * version: * history: */ #include <Windows.h> #include <s

JDBCUtils,一个操作关系型数据库的小工具

先贴代码 1 public class SqlC3p0Utils { 2 private static ComboPooledDataSource dataSource; 3 static{ 4 ResourceBundle bundle=ResourceBundle.getBundle("db");//获得配置文件对象 5 dataSource = new ComboPooledDataSource();//获得连接池对象 6 //根据配置文件队连接池进行配置 7 try { 8 d

用C#写一个Excel转Txt的小工具

using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using Microsoft.Office.Core; using Excel = Microsoft.Office.Interop.Excel

Java正则表达式——测试正则表达式的一个小工具

正则表达式是一种强大而灵活的文本处理工具.使用它我们能以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索.一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理. 关于正则表达式的语法,网上对此有介绍的文章实在是多不胜数,实在找不到,还可以查看Java的API文档,就不多介绍了.这里主要介绍一个可以测试正则表达式的小工具.直接上代码: 1 package com.test.stringregex; 2 //{Args: abcabcabcdefabc "abc+" &q

Python学习之旅:用Python制作一个打字训练小工具

一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码. 然而现实中的程序员呢?对于很多程序员来说,没有百度和 Google 解决不了的问题,也没有 ctrl + c 和 ctrl + v 实现不了的功能. 那么身为一个程序员,要怎么让自己看起来更加“专业”呢?答案就是加快自己的打字速度了,敲的代码可能是错的,但这个13却是必须装的! 然而还是有不少人