-
webassembly-1.使用ollvm和wasi-sdk混淆
# webassembly-1.使用ollvm和wasi-sdk混淆标签(空格分隔): webassembly混淆webassmebly作为新型平台越来越受到重视,其中WASM的混淆也尤为重要。本文介绍一种简单的混淆方法在ubuntu22.04下使用,并且使用wasi-sdk的类C库,混淆的WASM程序可以使用C库函数实现类似功能。1. 下载ollvm并编译安装原始的ollvm版本已经年久失修,跟不上新版本的开发,如果使用会遇到很多bug,这里我采用一个修改版的ollvm,github地址...…
-
VScode学习笔记1---使用clangd插件格式化代码
vscode_1: 使用clangd格式化代码1. 在vs code中安装clangd插件(如果你是使用的ssh连接服务器进行远程开放,请先在服务器上安装clangd)(apt-get install ….)在vscode搜索clangd插件并安装安装好以后会和C/C++ IntelliSense冲突,所以要disable C/C++ IntelliSense(如果你安装了这个插件的情况下),disable如果不成功,使一下大写D,“Disable”。当然,你也可以通过vs code的配置...…
-
llvmlite学习笔记1---生成和调用函数
llvmlite是llvm的一个简化版本,他使用python来生成LLVM IR,首先我们熟悉一下整个编译过程。1,拿到llvmir:import llvmlite.ir as ir# 创建一个int64类型的变量int64 = ir.IntType(64)# 你也可以使用这个来创建一个浮点类型的变量,不过浮点类型的变量就不可以传参了double = ir.DoubleType()# 创建一个module,每一个module就相当于一个。c文件一样,# 其实不一样,我这么说是为了方便理解#...…
-
LLVM学习笔记1之LLVM编译
llvm非常巨大,编译也是一件令人头疼的事情,我选择的编译平台是ubuntu x64。我没有选择MacOS是因为我不想把编译工作放在本地,用ubuntu的话我可以使用云主机编译,比本地更加方便。如果有什么问题我还可以推导从来。llvm改动非常频繁,之前有介绍llvm的书籍已经太老了,很多流程都已经改变了。所以我从官网和github上边把步骤记录了下来。1,下载llvm源码。(在下载源码之前我已经安装了gcc, g++,llvm,cmake,make,git, opam, nijia-bui...…
-
调试pintools之libdft64动态污点追踪工具
intel pin的官方手册中并没有给出调试pintools的方法,只列出了调试待插桩程序的方法。后来俺又找了好久的资料终于找到调试pintools的方法了,本文以track.cpp(libdft的一个示例程序)为例。 trak.cpp其实是一个pintools。为了调试pintools我们需要在pin启动的时候加一个参数 以前我们启动pintools是这样启动的../../../pin -t ./obj-intel64/trace.so -logfile trace.out -- ....…
-
Jekyll搭建个人博客
之前写了一篇HEXO搭建个人博客的教程获得了很好评,尤其是在简书上目前已经累积了10W+的阅读量了,也有好心的读者主动给我打赏,在此感谢。 如果你看过我的文章会发现我现在的博客样式跟之前是有很大的区别的,之前我也是使用 HEXO 搭建的博客,后来发现使用 HEXO 在多台电脑上发布博客,操作起来并不是那么方便,果断就转到了 Jekyll 上,接下来我会讲如何使用 Jekyll 搭建博客,博客模板效果。介绍 Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原...…