ChatGPT优秀插件汇总--插件自动生成单元测试代码实验

VSole2023-02-10 16:34:13

0x01 前言

OpenAI的ChatGPT智能AI引擎,在全世界范围流行,各种ChatGPT应用场景也遍地开花。 问题回答、文章续写、代码审计、自动生成单体测试、木马生成等等,都可以实现。

用户方面也有很多相关活动,有媒体号拉群推广技术、有中间商提供相关服务、内容代理转发机器人、相关组织加紧封号,技术人员先行进入战场,然后是自媒体流量段子飞起。

简单测试一下,ChatGPT在软件开发方面的功能是否好用,就用一个自动生成单元测试代码作为例子。文章最后,提供一些好用的ChatGPT插件,覆盖了日常最常用的ChatGPT的使用场景。

0x02 ChatGPT自动生成代码单元测试用例

源代码,先写一个简单的Lua函数代码,太复杂的理解的也慢,如下:

function ChatGPT(num1, num2)local ret = num1 + num2return retendChatGPT(5,7)

然后,查看ChatGPT返回的单元测试代码,如下:

 

图-1 ChatGPT生成的Lua单元测试的代码(两个用例)


看到了ChatGPT返回的两个测试用例。

测试用例1

function test_ChatGPT()assert(ChatGPT(1, 2) == 3)end

测试用例2

function test_ChatGPT()assert(ChatGPT(-2, 3) == 1)end

把单体测试代码复制源代码中,等待执行。 

 

图-2 测试执行Lua单元测试代码

正常执行代码,显示空内容。

 

图-3 返回结果为空

0x03 改造AI生成单元测试代码

ChatGPT返回的Lua单体测度代码,都是断言(Assert)正确的结果,手段把生成的代码改了,生成的是不出断言出错的,改成会造成代码断言出错的。

改之前,代码:


function test_ChatGPT()assert(ChatGPT(1, 2) == 3)end

改之后,代码:


function test_ChatGPT()assert(ChatGPT(1, 2) == 5)end


故意把断言(assert)的条件改错,出现下面的执行结果。

 

图-4 单体断言出错

正常用ChatGPT自动生成的函数单元测试代码是没有问题的, 用例都是断言(Assert)对的用例,“异常系”的用例,需要自己改造测试代码,从这个角度看,ChatGPT生成单元测试代码,还是可以提高工作效率的。

0x04 好用有的ChatGPT插件汇总

最后,推荐几个常用插件, 可以让用户在多种情况下,使用ChatGPT的功能,这三个插件都有一定的用户基数, 用起来还是可以的,Obsidian笔记社区本身支持也很强大。ChatGPT最开始是从日文站看到的。

Chrome浏览器插件:ChatGPT Everywhere

 

图-5 浏览器插件

这是一个浏览器插件,可以在插件市场中下载,对不同的浏览器找对应的版本。

VSCode插件:ChatGPT

 

图-6 VSCode插件

VSCode的插件,本文生成单元测试代码就靠这个插件。

Obisidian笔记插件:Text Generator

 

图-7 Obsidian笔记插件

用Obsidian笔记做知识管理和工作流的可以安装这个插件使用ChatGPT。以上这三个插件,是比较常用的,覆盖了基本使用场景,不用切换到浏览器下使用。

0x05 总结

以 上插件使用,遇到什么相关问题,请在公众号私信留言,提供相关支持。

在OpenResty公司的产品迭代最初发展阶段,我们就开始使用OpenResty产品,应用于计算机Web安全业务场景,基于OpenResty Edge WAF与OpenResty XRay分析平台。同时,于人民邮电出版社,编辑胡俊英老师,李华锋老师,一起出版 创作了《墨守之道-Web服务安全架构与实践》 这本书,实践了动态追踪技术,在 Web 安全领域的应用。

assert单元测试
本作品采用《CC 协议》,转载必须注明作者和本文链接
编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。go test命令是一个按照一定约定和组织的测试代码的驱动程序。
前言 OpenAI的ChatGPT智能AI引擎,在全世界范围流行,各种ChatGPT应用场景也遍地开花。简单测试一下,ChatGPT在软件开发方面的功能是否好用,就用一个自动生成单元测试代码作为例子。文章最后,提供一些好用的ChatGPT插件,覆盖了日常最常用的ChatGPT的使用场景。0x02 ChatGPT自动生成代码单元测试用例 源代码,先写一个简单的Lua函数代码,太复杂的理解的也慢,如下:function ChatGPTlocal ret = num1 + num2return retendChatGPT(5,7)
disable_functionsdisable_functions是php.ini中的一个设置选项,可以用
深入理解how2heap_2.23
2023-09-25 10:35:41
例题1:0CTF2017:babyheap(https://www.52pojie.cn/thread-1817311-1-1.html)
manjusaka牛屎花是一款基于WEB界面的远程主机管理工具,系统架构见下图。
CVE-2021-4034分析
2023-08-28 09:45:48
在 polkit 的 pkexec 工具中发现的本地权限升级漏洞,pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户按照预定义策略以特权用户身份运行命令。当前版本的 pkexec 无法正确处理调用参数个数,并试图将环境变量作为命令执行。攻击者可以利用这一点,精心设计环境变量,诱使 pkexec 执行任意代码。成功执行后,该攻击可导致本地权限升级,赋予未授权用户在目标计算机上的管理
文章首发在:奇安信攻防社区https://forum.butian.net/share/2142前言 如果存
House of Cat5月份偶然发现的一种新型GLIBC中IO利用思路,目前适用于任何版本,命名为House of cat并出在2022强网杯中。但是需要攻击位于TLS的_pointer_chk_guard,并且远程可能需要爆破TLS偏移。并且house of cat在FSOP的情况下也是可行的,只需修改虚表指针的偏移来调用_IO_wfile_seekoff即可。vtable检查在glibc2.24以后加入了对虚函数的检测,在调用虚函数之前首先会检查虚函数地址的合法性。
在渗透或者CTF中,总会有特殊函数被过滤,如'ls、cat、tac'。防火墙将这些函数加入黑名单,我们需要找一些方法来代替,用fuzz给他们替换,就出现了BYpass思路。学习就是先走一回别人的老路,知识点到量才可以开创自己的新路。
菜刀、冰蝎、蚁剑、哥斯拉的流量特征
VSole
网络安全专家