Orust Mimikatz Bypass Kaspersky

混淆版rust mimikatz bypass卡巴斯基 rust = rust + LLVM orust = rust + OLLVM rust后端使用LLVM, 所以可以使用OLLVM做混淆, 我之前在思考怎样把OLLVM用到rust上, 前几天看到已经有相关文章了, 感谢@ny0c 不过文章中有几处地方可能是作者故意留坑, 我将告知大家正确的流程: 编译LLVM 编译LLVM时, 不要编译动态库, 编译动态库后生成的lib文件后缀将是.dll.a, 导致后续编译rust时缺少库文件, 正确的编译命令如下 cmake -G "Ninja" -S ./llvm-project/llvm -B ./build_dyn_x64 -DCMAKE_INSTALL_PREFIX=./llvm_x64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lld;" -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_INSTALL_UTILS=ON -DLLVM_INCLUDE_TESTS=OFF -DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_BUILD_BENCHMARKS=OFF 这样编译后也无需修改src/bootstrap/compile.rs 自定义toolchain 自定义toolchain时有一些细节没提到, 编译出来的stage1-tools-bin文件夹中cargo.exe, 要放到stage1/bin目录下, 其他文件放到stage1/libexec目录下, 这样才是一个比较完整的toolchain 还有一些细节我想提出来: 打包toolchain的细节 编译好了toolchain, 怎么打包存放或者分发呢? 先按照上面将完整toolchain配置好, 然后复制stage1文件夹出去, 然后删除rust文件夹下的build目录, 再删除stage1/lib/rustlib/src/rust文件, 这个文件是个链接, 随后复制整个rust文件夹到stage1/lib/rustlib/src. 因为stage1目录下引用了rust目录, rust目录下又存在stage1目录, 导致循环引用, 我在使用WinRAR时是无法打包的 编译的库路径问题 大家都知道, rust默认编译后会将一些敏感目录打包进二进制文件, rust的库也存在类似的问题. 一般的解决方案是使用--remap-path-prefix去映射, 但是在编译rust的本身的库的时候, 是无法完全控制的, 为什么说无法完全控制呢?...

April 16, 2023 · b1n