- 博客(1392)
- 资源 (64)
- 收藏
- 关注
原创 软件安全学习课程实践3:软件漏洞利用实验
1.1.1 和 1.1.2 直接 F5 看 flag 就可以了,故略。1.1.3 对输入用了算法变换,能看到flag,比如输入x,经过f处理成f(x)然后判断f(x)=y,现在要破解f的算法然后写个逆预算g(y)=x这个代码看起来很抽象,因为 IDA 没有正确的恢复这里的变量结构。选中变量按“N”重命名,按“Y”更改类型这里很明显是一个buf数组,IDA识别成两个变量,按Y修改为char buf[20]数组。
2023-11-17 01:22:29
87
原创 快手 KDD 2023 入选论文解读 # Graph Contrastive Learning with Generative Adversarial Network
问题:现有的 GCL 方法没有考虑图的分布,导致对于潜在边(unseen edges)的缺失考虑,利用这个信息在实验中可以提高 GCL 的性能。方法:本文利用 GAN 来学习图分布,提高数据增强的能力,然后联合训练 graph GAN 和 GCL 模型,即提出的 GACN 模型。GACN 利用 generator 生成的 views 并以 graph contrastive loss 和 bayesian personalized ranking loss 这两个自监督损失来训练 GNN encoder。
2023-08-06 01:50:57
398
原创 Mac 终端快捷键设置:如何给 Mac 中的 Terminal 设置 Ctrl+Alt+T 快捷键快速启动
Mac 电脑中正常是没有直接打开终端命令行的快捷键指令的,但可以通过 command+space 打开聚焦搜索,然后输入 ter 或者 terminal 全拼打开。系统偏好设置→键盘→快捷键→服务→通用中找到刚才命名的脚本,【打开Terminal】,然后配置快捷键即可。1.command+space 打开聚焦搜索“automator”,显示的也可能是中文名的“自动操作”。然后可以点击运行【▶】测试一下是否能打开 terminal。保存,命名【打开Terminal】如下图所示:选择【服务】
2023-07-31 15:18:13
1786
1
原创 【密码原理】群与公钥加密体制:Diffie-Hellman密钥交换、ElGamal加密、零知识证明
本文主要介绍群、公钥密码体制以及DH协议、ElGamel加密和零知识证明ZKP基础,为后续进一步学习ZKP打下基础
2023-07-24 15:12:25
249
原创 文献阅读笔记 # SimCSE: Simple Contrastive Learning of Sentence Embeddings
SimCSE:Sentence Embedding + 对比学习
2023-07-09 14:24:19
491
原创 USENIX Security 23 论文解读 # VulChecker: Graph-based Vulnerability Localization in Source Code
基于AI实现的SAST实现漏洞检测、分类和精确定位
2023-07-09 01:06:06
585
原创 模糊测试Fuzzing基础知识学习笔记
模糊测试(Fuzzing),是一种通过向目标系统提供并监视结果来发现软件漏洞的方法。在模糊测试中,用(也称做 fuzz)攻击一个程序,然后观察哪里遭到了破坏。模糊测试(Fuzz Testing)是一种自动化的软件测试技术,最初是由威斯康辛大学的巴顿·米勒于1989年开发的,通常用于识别程序中的潜在漏洞。模糊测试的核心是自动或半自动的生成随机数据输入到应用程序中,同时监控程序的异常情况,如崩溃、代码断言失败,以此发现可能的程序错误,如内存泄漏。
2023-07-02 01:49:22
754
原创 安全研究 # Third-Party Library Dependency for Large-Scale SCA in the C/C++ Ecosystem: How Far Are We?
针对 C/C++ 生态系统的现有的软件成分分析(SCA)技术
2023-06-28 12:54:44
309
原创 略读 # SourcererCC: Scaling Code Clone Detection to Big Code
代码克隆检测在海量源码的场景下的解决方案
2023-06-27 16:50:32
296
原创 区块链安全:unchecked-send bug & recursive calling vulnerability
在将资金发送给子 DAO 时,合约使用了 call.value() 方法,该方法允许攻击者在其子 DAO 的回退函数中再次调用 splitDAO 函数。由于在发送资金之前没有更新投资者的余额,所以再次调用 splitDAO 函数时,合约会认为投资者仍然拥有相同的余额,并继续将资金发送给子 DAO。调整代码顺序,先计算可提取额度(由用户余额等信息来计算),之后立即清空用户余额,再进行划转,或者设置一个标记位,当发现用户已被标记过时,则不再进行划转。2.创建一个新的子 DAO,用于存储投资者的资金。
2023-03-22 17:11:52
401
原创 区块链安全:闪电贷 Flashloan
通过代码保证只有最终可以完成还款,交易才会被确认,这样一来就避免了需要超额抵押来确保贷款本金安全的风险控制策略,甚至可以做到。
2023-03-20 16:49:19
974
转载 【环境问题】VirtualBox ubuntu22.10 无法打开Terminal
VirtualBox Ubuntu22.10 打不开Terminal的解决办法
2023-03-14 10:21:12
4902
4
原创 算法 # SimHash 算法:文本相似度、文本去重、海量文本快速查询
SimHash 是 Google 发明的海量网页去重的高效算法,将原始的文本映射为 64 位的二进制串,然后通过比较二进制的差异进而表示原始文本内容的差异。传统的 Hash 算法只负责将原始内容尽量均匀随机地映射为一个 hash 值,原理上相当于伪随机数产生算法。SimHash 本身属于一种算法,产生的 hash 签名在一定程度上可以表征原内容的相似度。SimHash算法分为5个步骤:分词、hash、加权、合并、降维。
2023-02-28 13:43:34
923
原创 文献阅读笔记 # 面向大规模多版本软件系统的代码克隆检测加速技术
很多代码克隆检测方法主要针对软件系统的单个版本进行检测,在多版本情况下效率较低。本文提出一种针对多版本软件系统的克隆检测加速技术,可以快速得到每个版本的克隆情况。通过版本间方法映射技术为不同版本代码内容高度相似的同一方法构建方法版本组,选取每个方法版本组中最早的版本作为样本方法,样本方法的集合构成历史映像,对历史映像进行克隆检测,同时建立样本方法和方法版本组间的方法索引。根据历史映像克隆检测结果及方法索引恢复原始的全量克隆关系。结论:与文本对比方法提速4倍。
2023-02-28 10:34:47
590
原创 文献阅读笔记 # 开源软件供应链安全研究综述
本文总结了开源软件供应链的关键环节, 基于近10年的攻击事件总结了开源软件供应链的威胁模型和安全趋势, 并通过对现有安全研究成果的调研分析, 从风险识别和加固防御两个方面总结了开源软件供应链安全的研究现状, 最后对开源软件供应链安全所面临的挑战和未来研究方向进行了展望和总结。
2023-02-23 14:37:52
1307
原创 文献阅读笔记 # GraphCodeBERT: Pre-training Code Representations with Data Flow
之前的模型(eg. CodeBERT)把代码当作 tokens sequence,这显然忽略了代码结构信息,而这包含了关键的代码语义信息,有助于增强代码理解过程。本文提出的 GraphCodeBERT 是一个考虑了代码结构的面向编程语言的预训练模型。本文没有采用抽象语法树(AST)这样的代码语法结构,而是在预训练阶段使用数据流,这是一种编码变量之间 “” 关系的代码语义结构。Data Flow 结构不复杂,不会带来不必要的 AST 的深层结构,这个性质让模型更高效。
2023-02-13 02:10:43
554
原创 文献阅读笔记 # CodeBERT: A Pre-Trained Model for Programming and Natural Languages
本文提出用于程序语言(PL)和自然语言(NL)的双模态预训练模型 CodeBERT。CodeBERT 学习支持下游任务(如: natural language code search, code documentation generation)的通用表示,然后基于混合的目标函数对其进行训练,该目标函数包含预训练任务和(detect plausible alternatives sampled from generators) 任务。
2023-02-11 03:05:02
608
原创 文献阅读笔记 # Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation
本文提出了一种简单有效的方法来扩展现有的 sentence embedding 模型到新的语言。这使得从以前的单语言(monolingual)模型创建多语言(multilingual)版本成为可能。翻译后的句子应该被映射到与原句子在向量空间中相同的位置。我们使用原始(单语言)模型为源语言生成句嵌入,然后训练一个新的语句翻译系统来模仿(minic)原始模型。
2023-02-03 02:32:21
335
原创 模型落地部署 # 使用 OpenSearch 托管机器学习/深度学习模型进行模型服务化 Model-serving
OpenSearch ML Commons 通过 REST API 提供机器学习算法。支持同步/异步训练 ML 算法、基于训练好的模型进行预测。权限:opensearch 中 ml_full_access、ml_readonly_access 权限的用户可以使用 ML 功能。为了防止 opensearch cluster 在运行 ML 任务时失败,可以(但不必要)配置一个 ML node。
2023-01-31 09:31:43
666
1
原创 文献阅读笔记 # Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
BERT(2018) 和 RoBERTa(2019) 在 sentence-pair regression 类任务(如,semantic textual similarity, STS, 语义文本相似度任务)中取得了 SOTA,但计算效率低下,因为 BERT 的构造使其不适合 semantic similarity search 也不适合无监督任务,如聚类。10000 sentences 找到最相似的 pair 需要约5千万次BERT推理(单张V100 ~65hours)
2023-01-28 16:12:11
916
原创 算法工程 # 深度学习算法落地最后一公里:工业界中的大规模向量检索
现代深度学习实践中很多场景其实都是对输入数据进行处理、嵌入,最终获得一个 embedding,然后对 embedding 进行相似度检索,而工业界中的被检索数据往往是海量的,因此深度学习模型落地的最后一步也就是大规模向量检索。本文介绍在工业界实践中常用的向量检索方案。
2023-01-09 02:18:44
875
原创 安全研究 # Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
跨平台二进制代码相似度检测
2022-12-22 16:25:54
1032
2
原创 安全研究 # Order Matters: Semantic-Aware Neural Networks for Binary Code Similarity Detection
图7中是4个控制流图的block(左上,左下,右上,右下),我们使用K-means对预训练后的block embedding进行分类(K-means的类别数定为4),不同的类别颜色不同。为什么使用CNN模型呢?这三个图非常相似,每个图中都有一个三角形特征(图a的节点123,图b的节点234,图c的节点134),这个特征体现在它们的邻接矩阵中。首先对比图a和图b,与图a相比,图b加入了节点1,节点顺序依次后移一位,但三角形特征中三个节点的顺序还是连续的,这个特征在邻接矩阵中可以看到,这个1-1-0-1的。
2022-12-14 18:17:55
482
原创 图拉普拉斯矩阵
在线性代数里,正定矩阵 (positive definite matrix) 有时会简称为正定阵。广义定义:设M是n阶方阵,如果对任何非零向量z,都有zTMz>0,则称M为正定矩阵。狭义定义:一个n阶的M是正定的的条件是当且仅当对于所有的非零实系数向量z,都有zTMz>0。A=CTC。
2022-12-14 14:33:00
1337
C++_STL使用例子大全
2016-07-30
Learning the vi and Vim Editors
2016-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人