ChatGPT在源代码分析中可靠吗?

引文

ChatGPT自发布以来,它在各行各业都掀起了一股学习热潮。由于其惊人的语言理解和生成能力,ChatGPT已经备受全世界瞩目。它在智能对话、翻译、摘要、文本生成等领域中展现出了非凡的能力,让人们对其充满了好奇、敬畏和赞叹之情,同时开始怀疑自己的行业是否马上就会被人工智能所替代,甚至感到担忧。

作为代码分析领域中的从业者,GPT是否对这个领域具有较强的冲击力呢?本文将以敏感性这个代码分析中最重要的指标对GPT进行简单的测试以探究ChatGPT在敏感性相关的代码分析过程中的表现,我们以C/C++程序中关注度较高的内存泄漏为例进行测试。在测试中,我们发现ChatGPT展现出了一定的精度和检测能力,能够识别和定位部分代码中潜在的内存泄漏问题。但与绝大部分自动检测工具类似,也会在一些敏感性相关的代码分析中表现不足,出现较低级误报和漏报。

以下是一些内存泄漏相关的片段代码在ChatGPT中的分析结果与误漏报分析。

例0

基础代码片段

分析:ChatGPT对于该例子的判断和分析过程都是正确的。我们在此例子上增加敏感性看看他的表现。

例1

流敏感(误报)

误报分析:对代码稍做修改,增加流敏感性,将flag的初值设置为1,然后再改为0,chatGPT检测的结果是误报,且分析过程也出现了错误。采用我们的代码分析工具做了流敏感分析是不会出现该误报的。

例2

路径敏感(误报)

分析:虽然chatGPT给出的判断结果是正确的,但是分析过程存在一些问题。第一个条件语句中,如果a小于b,就将b重置为a-1,那么第二个条件的a<b就一定不成立,所以肯定会导致内存泄漏,但chatGPT分析不出来第一个条件分支执行后对第二个条件分支的影响,所以给出的分析是一些笼统的判断。

误报分析:这是一个路径敏感的小例子,ChatGPT给出的结果是误报。在第一个条件判断中,如果a>=b,那么b会被重置为a+1,以保证第二个条件语句的条件a<b一定成立,那么程序肯定会调用free(ptr)语句,因此不存在内存泄漏问题。所以chatGPT给出的判断和分析都不正确。采用我们的代码分析工具是做了常量传播是不会出现该误报的。

例3

上下文敏感(误报)

误报分析:这是一个典型的上下文敏感的例子,chatGPT给出的判断结果显然是误报。ptr1将调用函数Fun分配内存,ptr2同样调用了函数Fun,但并没有分配内存。在函数结尾处释放了ptr1,不存在内存泄漏问题。而chatGPT分析中得到了ptr2为NULL指针,却又说另一个内存块没有被释放,明显是错误的。

例4

域敏感(漏报)

漏报分析:chatGPT给出的判断是不存在内存泄漏,很明显这是漏报。分析中指出了分配了两块内存,只释放了一块内存,分析结果却是“没有任何未释放的内存块,不会发生内存泄漏”。采用我们的代码分析工具,对每个内存段都建立的模型就不会出现该漏报。

分析:同样的例子,当将参数改为free(ptr[1]),chatGPT给出的判断结果仍是不存在内存泄漏,所以仍是漏报。分析中指出了分配了两块内存,只释放了一块内存,分析过程说是剩余的内存由程序退出时释放。

分析:笔者反复将free(ptr[0])和free(ptr[1])修改几次,chatGPT给出的结果是free(ptr[1])判断有内存泄漏,free(ptr[0])没有内存泄漏。与前面的结果对比,在分析过程中出现了同样的代码,却给出了不同的判断结果,这种情况让使用者产生了极大的困惑。根据笔者的经验,在代码分析工具使用过程中,多次结果的不一致问题是不可接受的,可靠性同样是衡量工具优劣的重要指标之一。

总结

通过对上述片段代码在ChatGPT中进行简单测试后,不难发现,尽管ChatGPT在一定程度上能够帮助代码分析,但其分析结果的准确性仍具有很大的不确定性,特别是在处理敏感性相关的代码时,这种不确定性可能会更加明显,而这本身也是静态代码分析中的重点和难点。但是总体来说GPT仍旧具备一定的竞争力,

1、能够支持编译不通过即片段代码的分析,这也是大多数静态分析工具不具备的。

2、具备的静态分析工具的不具备的缺陷模式自动采集能力。绝大多数静态分析工具针对新的缺陷类型往往都是靠经验总结,新模式也需要在检测器中增加新的代码。但是GPT这些工作都是自动的,这也是传统代码分析工具无法做到的。

所以,我们认为GPT更多的是知识型的分析方法,不是符号逻辑型的。这两种方法是可以做到互补来提高代码分析工具的能力。当传统的代码分析工具,受困于状态爆炸必须进行折中而存在较高的误漏时,也可以结合AI的方式来进一步提高检测精度,突破现有分析能力的瓶颈。

鸿渐科技的代码分析技术正是结合了基于值依赖分析的符号逻辑分析技术和基于AI模式的自动模式生成技术以产生新的缺陷模式和函数摘要快速收集新的漏洞缺陷知识,同时也可以做到编译不通过情况下的片段代码分析,以达到更优的检测效果。

END

扫码关注我们

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5832.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我听过的最不可能的预测就是「ChatGPT 会取代程序员的工作」—— 恰恰相反,因为 ChatGPT 等工具的出现,我断言未来的十年里,中国新增 5 亿以上的程序员。

最不可能的预测 我听过的最不可能的预测是「ChatGPT 会取代程序员的工作」。 恰恰相反,因为 ChatGPT 等工具的出现,我断言未来的十年里,中国新增 5 亿以上的程序员。 程序员的效率提升一直在飞速进行 有人说因为 ChatGPT 可以写程序了,所以程序员要失业了。但是,在程序员…

淘汰我们的,从来都不是ChatGPT,而是背后那个使用ChatGPT的人

大家是不是被ChatGPT&#xff0c;被midjourney刷屏了&#xff1f; “许多岗位将要被AI所取代”的言论甚嚣尘上&#xff0c;很多人都开始焦虑&#xff0c;什么时候会轮到我&#xff1f; 我的观点是&#xff1a;千万别为AI新技术的出现而感到焦虑&#xff0c;ChatGPT的出现&#…

从ChatGPT与New Bing看程序员为什么要学习算法?

文章目录 为什么要学习数据结构和算法&#xff1f;ChatGPT与NEW Bing 的回答想要通关大厂面试&#xff0c;就不能让数据结构和算法拖了后腿业务开发工程师&#xff0c;你真的愿意做一辈子CRUD boy吗&#xff1f;对编程还有追求&#xff1f;不想被行业淘汰&#xff1f;那就不要只…

黑马威武||《ChatGPT全通关》免费学

2023年&#xff0c;不会还有人不知道ChatGPT吧。 它是史上最快突破1亿用户的软件产品&#xff0c;上线即刷爆各大社交平台&#xff0c;多次霸榜微博热搜&#xff0c;它衍生出了无数副业&#xff0c;甚至有人用它两个月狂赚30万...... 比尔盖茨都评论说“这将改变我们的世界”…

【AutoGPT】AutoGPT出现,是否意味着ChatGPT已被淘汰

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 前言 什么是ChatGPT&#xff1f; 什么是AutoGPT&#xff1f; AutoGPT与ChatGPT的区别 AutoGPT的优势和劣势 优势 劣势 ChatGPT是否会被淘汰&#xff1f; 前言 近年来&#x…

ChatGPT未来会取代程序员吗?

前言 程序员更多的时间是在调试和修改代码&#xff0c;包括讨论需求同步信息等&#xff0c;然后才是写代码-时间占比最多也就是20%~30%左右&#xff0c;而更时间占比更多的80%左右需要程序员用独立思考能力和批判性思维进行工作&#xff0c;这是ChatGPT目前还做不到的地方。即…

体验了一把ChatGPT,程序员不用写注释了...VSCode+ChatGPT 编程利器

额&#xff0c;作为一名程序员&#xff0c;最烦的就是写注释&#xff0c;写文档&#xff0c;如果能直接在编辑器中直接帮我提供这样的功能&#xff0c;免得开发阶段写大量注释&#xff0c;那么今天&#xff0c;它来了… VSCode是一款开源、轻量级的跨平台集成开发环境&#xf…

科大讯飞辟谣星火大模型套壳ChatGPT;谷歌发布AI语言模型PaLM 2;OpenAI CEO将赴美国为AI辩护丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 英特尔与波士顿咨询公司联合推出企业级生成式AI解决方案 近日&#xff0c;波士顿咨询公司&#xff08;BCG&#xff09;和英特尔宣布开展战略合作&#xff0c;为企业客户提供完全定制的专有解决方案&#xff0c;…

互联网晚报 |疑似小米汽车设计效果图曝光;三亚海鲜餐饮协会建议各类珍稀海产品加价50%;亚马逊已在多种工作中使用ChatGPT...

三亚海鲜餐饮协会倡议&#xff1a;建议各类珍稀海产品加价率50%以内 三亚市海鲜餐饮协会发布倡议书。其中提到&#xff0c;不哄抬海鲜及其他消费、服务价格。请全市海鲜餐饮星级商家、海鲜餐饮高质量服务餐厅、大型餐饮企业等标杆餐饮企业发挥模范带头作用&#xff0c;除政府实…

Spring WebFlux 响应式Web框架

Spring WebFlux是随Spring 5推出的响应式Web框架。 服务端技术栈 Spring提供了完整的支持响应式的服务端技术栈。 如上图所示&#xff0c;左侧为基于spring-webmvc的技术栈&#xff0c;右侧为基于spring-webflux的技术栈&#xff0c; Spring WebFlux是基于响应式流的&#x…

学术专用版ChatGPT,开源了!

Datawhale干货 项目&#xff1a;GPT学术版&#xff0c;来源&#xff1a;机器之心 用 ChatGPT 辅助写论文这件事&#xff0c;越来越靠谱了。 ChatGPT 发布以来&#xff0c;各个领域的从业者都在探索 ChatGPT 的应用前景&#xff0c;挖掘它的潜力。其中&#xff0c;学术文本的理…

【SAP】为什么2023年后ABAP仍有广阔前景「来听听ChatGPT怎么说」

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

我继续问了ChatGPT关于SAP顾问职业发展前景的问题,大家感受一下

目录 SAP 顾问 跟其他IT工作收入情况相比是怎么样的&#xff1f; 如何成为SAP FICO 优秀的顾问 要想成为SAP FICO 优秀的顾问 &#xff0c;需要ABA开发技能吗 SAP 顾问中哪个类型收入最多&#xff1f; 中国的ERP软件能够取代SAP吗&#xff1f; 今天我继续撩 ChatGPT。随便问…

chatgpt-retrieval-plugin实操上手chatgpt插件的开发

chatgpt发布了插件chatgpt-retrieval-plugin,做为目前热门的技术,恰好我上手python也好几年了,如此热门的东东,不上手实操下有点对不住自己上手好几年的python了。 不多废话了,开始上手这个chatgpt-retrieval-plugin,所用到的环境及技术:win10操作系统、VMware、centos…

能使用chatgpt的一款插件

最近真的被这个破学校逼疯了&#xff0c;数不清的破文档&#xff0c;像依托答辩&#xff0c;无从下手&#xff0c; 还好有他&#xff0c;我们的 WebTab ,内置的chatgpt&#xff0c;让我注水课设&#xff0c;游刃有余 现在&#xff0c;我要从0开始教你如何下载并使用这款好用的…

车万翔:ChatGPT时代,NLPer 的危与机

来自&#xff1a;智源社区 要点速览&#xff1a; ChatGPT的诞生&#xff0c;源于研究者「暴力美学」的手段。如果大胆预测&#xff0c;ChatGPT能火几年&#xff0c;我猜可能是2到3年的时间&#xff0c;到2025年大概又要更新换代了。工业界相较于学术界拥有巨大优势。这种「AI 的…

ChatGPT研究分享:插件模式的利与弊

目录 1、插件的实现方式 1.1 Toolformer 1.2 OpenAI插件文档 1.3 个人感想 2、一些有意思的点 2.1 知识和价值观 2.2 算法的研究方向 OpenAI近期公开了GPT-4&#xff0c;除了各方面性能的大幅度提升&#xff0c;最大的惊喜应该来自于插件模式的引入&#xff0c;GPT-4可以…

Ursina随笔(一)—— Chatgpt帮忙解决Ursina中文显示为方块的问题

去年使用Ursina来替代Unity 3D做了一个项目&#xff0c;用Python比c#爽&#xff0c;但程序的中文的显示问题一直没解决&#xff0c;临时的解决方法是翻译成英文或者用图片。Ursina的国内用户很少&#xff0c;网上也没搜索到解决方案&#xff0c;对这个问题一直念念不忘。 # -*…

一招,提高 Github 成员微信群运营效率

[外链图片转存失败&#xff0c;源站可能有防盗链机制&#xff0c;建议将图片保存下来上传(img-tvqbdR3w-1663327883339)(https://img-blog.csdnimg.cn/img_convert/b90a5642bc5aa322d23157e5fb5762ad.png)] 01 #学习是未来人工智能的基础石 外媒TechUp 3月1日&#xff0c;几…

微信中如何接入机器人才比较安全(不会收到警告或者f号)之第三步正式接入

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 前言 前面两篇文章分别介绍了下chatgpt接入方式: 微信中如何接入chatgpt机器人才比较安全(不会收到警告或者f号)之第一步登录微信 微信中如何接入chatgpt机器人才比较安全(不会收到警告或者f号)之第二步注入dll文件…