天命所归,SyntaxFlow助大圣取得真经

news2024/11/17 13:26:21

之前预告许久的SyntaxFlow功能已经登陆Yakit!

图片

SyntaxFlow代码查询需要先进行项目编译。

手动编译 

在前端的YakRunner界面,主界面或选项栏可以直接点击“编译项目”功能。

可见图中红色方框圈起的选项

图片

编译项目的选项如下:必选项为项目名、语言和项目路径。

图片

其他额外信息、数据库路径、项目入口文件等都非必填。

编译当前项目

当在YakRunner中打开一个项目以后,可以使用快捷方式直接编译当前打开的项目。

图片

此时将会自动填充路径和项目名等信息。需要用户手动选择语言。

图片

图片

已编译项目列表

在最近编译项目中,可以快速打开已编译项目。

选择查看全部将会打开已编译项目列表。

图片

将会显示已编译项目的名称、路径、编译时间和相关操作。可以进行该项目的打开以及项目删除。

图片

打开已编译项目

打开已编译的项目,将会显示文件资源管理器页面,同时会显示 "Yakit技术预览版"的水印。

图片

可以检查文件内容,但这些已经编译的项目文件内容是只读的。

图片

图片

输入SyntaxFlow语句查询

在左侧侧边栏中可以看到代码审计选项, 点开以后可以发现编写SyntaxFlow查询语句的窗口:

图片

在这里我们编写一段代码:

  • 查找所有的*Mapping注解,并找到其实例,然后通过()得到参数,并过滤去掉this参数,然后将结果保存在Params里面。

    • 或者说:查找所有被*Mapping修饰的方法的参数。

然后我们可以看到结果是保存的变量: 

  • Param: 是保存的$param变量, 其中有54个值,表示被*Mapping修饰的方法的参数。

每一次查询都会得到一个变量列表,如同上文所示,在SyntaxFlow规则中定名的变量都会在结果中列出。

点开变量名将会展示该变量内保存的所有结果:将会标注其IR表示以及源码位置:

图片

查询结果信息

点击查看其中的某一项结果,YakRunner将会展开以下结构:

图片

  • 编辑器将会跳转到该结果对应的源码位置:

图片

审计结果:分析路径

  在右侧上半部分审计结果将会展示获得该结果的所有分析路径。

  默认展开路径信息。

图片

  • 可以继续点击获得每一个路径节点对应的源码信息。

图片

  • 点击右侧信息也可以直接在编辑器跳转。

  • 点击右上角为关闭详细信息或对路径进行折叠。

审计结果:分析图

右侧下半部分将会展示分析过程的图:

紫色节点代表当前结果,其他的普通节点代表分析过程中的节点。

图片

普通节点可以点击并且显示节点信息,点击文件路径可以在编辑器跳转:

图片

图片

SyntaxFlow 是一个 Yaklang 出品的编译器级的高级静态分析语言。旨在分析被 Yaklang SSA 编译器编译后的程序。SyntaxFlow支持高级数据流分析、自动的跨过程分析和面向对象或闭包的抽象等高级特性。如果感兴趣的话,欢迎访问网站:ssa.to 了解更多。

目前的YakRunner登陆的SyntaxFlow功能为技术预览版,接下来将会持续更新SyntaxFlow和YakSSA HIR的分析能力以及相关使用教程,欢迎持续关注。

END

  YAK官方资源 

Yak 语言官方教程:
https://yaklang.com/docs/intro/

Yakit 视频教程:
https://space.bilibili.com/437503777

Github下载地址:
https://github.com/yaklang/yakit

Yakit官网下载地址:
https://yaklang.com/

Yakit安装文档:
https://yaklang.com/products/download_and_install

Yakit使用文档:
https://yaklang.com/products/intro/

常见问题速查:
https://yaklang.com/products/FAQ

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工控机防病毒/防勒索病毒如何一步搞定?

随着勒索病毒的肆虐和内部运营泄密事件的频发,企业数据安全正面临着前所未有的挑战。苏州深信达网络科技有限公司,作为数据安全解决方案的先驱,推出了MCK主机加固解决方案,为企业数据安全提供了一道坚不可摧的防线。 MCK主机加固…

Linux:多路转接 select、poll、epoll

目录 1:select 1. 参数解释 2. 函数返回值 3. fd_set 4. fd_set 相关接口 5. timeval 5. 常见使用 6. 理解 select 执行过程 7. select 的特点 8. select 缺点 9. select 应用 2:socket 就绪条件 1. 读事件就绪(Readable&#x…

智能优化算法-海马优化算法(SHO)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 海马优化算法 (Seahorse Optimization Algorithm, SHO) 是一种基于群体智能的元启发式优化算法,它模拟了海马的觅食行为、繁殖行为以及社会互动,用于解决复杂的优化问题。 SHO的工作机制…

精选干货!分享5款ai智能写论文软件

在当今信息爆炸的时代,AI智能写作工具已经成为我们写作过程中的得力助手。特别是对于学术论文的撰写,这些工具不仅能够提高写作效率,还能帮助用户生成高质量的文稿。以下是五款值得推荐的AI智能写论文软件,其中特别推荐千笔-AIPas…

Path系统环境变量和CLASSPATH环境变量

Path系统环境变量 概述:Path环境变量不是java的,它隶属于windows操作系统 作用: PATH环境变量实际上就是给windows操作系统指路的。 在Path环境变量中有很多路径,路径和路径之间采用 分号(;) 隔开在DOS命令窗口中输入一条DOS命…

Vscode中搭建ABAP开发环境

文章目录 前提(在SAP系统中测试)1.1 登录sap 系统1.2激活测服务测试1.3 添加服务 下载Vscode2.1 安装ABAP Remote filesystem 打开ABAP System3.1 按照CtrlshiftP 找到AbapFs Connect to an ABAP system 前提(在SAP系统中测试) 1…

2-89 基于matlab的图像去噪方法

基于matlab的图像去噪方法,对比了常见的几种去噪方法,含中值滤波,均值滤波,维纳滤波,高斯滤波,以及三种形态学滤波(一般的,改进的,多结构元素形态学滤波)&…

HarmonyOS开发之Tab样式(背景高亮样式)

一:开发环境 二:效果图 三:实现步骤 Entry Component struct TabsPage {State tabArray:string[] ["首页","分类","应用","热点","我的"]State focusIndex: number 0;State index: num…

嵌入式学习(哈希表)

哈希表中元素是由哈希函数确定的,将数据元素的关键字key作为自变量,通过一定的函数关系(称为哈希函数),计算出的值,即为该元素的存储地址。 哈希函数:指将哈希表中元素的关键键值映射为元素存储…

局域网远程桌面工具:NoMachine 介绍、安装与使用

局域网远程桌面工具:NoMachine 介绍、安装与使用 NoMachine 简介Linux 安装Windows安装使用 NoMachine 简介 NoMachine是一款很常见的远程桌面工具,尤其在EDA领域,常常被用作远程接入方案。NoMachine可以用于个人远程连接,类似于…

4.第二阶段x86游戏实战2-CE加强修改移动速度(浮点数存放方式与转换)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

2.3.2 协程调度器实现与性能测试

LINUX 精通 8 day24 20240909 晚19:35 - 20: 47 课程链接地址 老师画图用的是excalidraw 可以在线 本地! Excalidraw:开源实用的白板画图工具(在线/本地安装)-CSDN博客 2.3.2 协程调度器实现与性能测试 复习了上…

HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)

跟着该视频学习,记录笔记:【黑马程序员pink老师前端入门教程,零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day3 内容梳理:…

使用ChatGPT生成爆款小红书文案,有手就行!

小红书,作为当下热门的社交电商平台,以其独特的社区氛围、精准的用户画像和高粘性的互动模式,吸引了大量年轻用户,尤其是女性用户。平台上的内容风格多样,涵盖了美妆、时尚、生活方式等多个领域。 本文将介绍小红书平台…

为何家用无线路由器不能实现PROFINET通信?

家用无线路由器和工业通信设备到底有什么不同?工控人加入PLC工业自动化精英社群 首先,在技术上,两者存在明显的差异。 家用无线路由器主要是为了提供互联网接入和家庭设备间的连接,而PROFINET则是专为工业自动化设计的通信协议。就…

1分钟教你用AI制作美女热舞视频,收益可观,操作简单(附工具及教程资料)

美女跳舞,听着是不是就觉得会很哇塞? 不管是男的女的、老的少的都喜欢看,而且一般美女跳舞的账号涨粉都很快,势头都贼猛。 今天就给大家分享一个很热门的小副业——AI美女跳舞。 更多实操和AI绘画工具,可以扫描下方&…

通过SSH服务远程操作Linux(ubuntu)主机

首先SSH是什么?SSH(Secure SHell)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。Secure Shell (SSH) 是一种网络协议,允许用户通过加密…

OpenCV-轮廓特征

文章目录 一、简介1.意义2.类别 二、代码实现1.数据预处理2.计算周长3.绘制外接圆轮廓4.绘制外接矩阵 三、总结 一、简介 1.意义 在OpenCV中,轮廓检测后得到的轮廓不仅是一系列点的集合,还可以进一步分析以提取有用的特征。这些特征包括但不限于轮廓的…

纷享销客CRM+契约锁:“好应用+电子签” 融合领先实践

9月6日,主题为“智享未来 领创CRM新纪元”的2024纷享销客伙伴大会湖北站圆满结束,此次盛会吸引了来自不同行业的精英代表、技术专家,共同探讨CRM领域的最新趋势、创新实践与未来机遇。纷享销客战略伙伴契约锁受邀参加本次大会,为现…

一区霜冰算法+双向深度学习模型+注意力机制!RIME-BiTCN-BiGRU-Attention

一区霜冰算法双向深度学习模型注意力机制!RIME-BiTCN-BiGRU-Attention 目录 一区霜冰算法双向深度学习模型注意力机制!RIME-BiTCN-BiGRU-Attention效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现RIME-BiTCN-BiGRU-Attention霜冰算法…