Rise的自留地

记录生活中的点滴,分享编程技术和游戏开发经验。

0%

很多App实现的定制ollvm框架中都有goron框架的影子,或多或少的借鉴了它的功能,包括

间接跳转,并加密跳转目标(-mllvm -irobf-indbr) 间接函数调用,并加密目标函数地址(-mllvm -irobf-icall) 间接全局变量引用,并加密变量地址(-mllvm -irobf-indgv) 字符串(c string)加密功能(-mllvm -irobf-cse) 过程相关控制流平坦混淆(-mllvm -irobf-cff) 想要了解怎么针对这些混淆功能完成去混淆,势必要先对其混淆过程有所了解,那么第一步就是对goron框架的编译使用

Lua是一个小巧的脚本语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。

汇编语言中的程序控制流常依赖于处理器的状态标志来进行决策。在x86架构中,ZF(Zero Flag)、OF(Overflow Flag)和SF(Sign Flag)是在执行比较和算术指令后设置的重要标志位。本文将探讨这些标志位以及与之相关的常用条件跳转指令,并提供代码案例以加深理解。

在汇编语言中,根据程序中的条件来决定执行流程是一项基本的操作。理解并有效地使用条件跳转指令,是编写高效汇编代码的关键。本文将重点讲解不等条件跳转指令 jne(Jump if Not Equal)和 jnz(Jump if Not Zero),包括它们的工作原理和一些实用的代码示例。

编译OLLVM

1
2
3
4
5
git clone https://github.com/heroims/obfuscator.git -b llvm-9.0.1 --depth 1
cd obfuscator
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

编译好后从build/bin/目录把下面几个文件拷贝到/toolchains/llvm/prebuilt/linux-x86_64/bin/ clangclang++clang-9.0clang-format 把以下几个文件从build/include/拷贝到/sysroot/usr/include/ Stdarg.hStddef.h__stddef_max_align_t.hfloat.hstdbool.h

最近不清楚使用原因,原本使用的好好vscode ssh远程连接,无法正常的的连接到远程服务器上。去查看vscode的文档,发现新增了tunnel模式。经过测试,可以正常的连接使用。

protocol-buffers proto3 语言指南

前言

近日在学习gRPC框架的相关知识时接触到Protobuf(protocol-buffers,协议缓冲区),proto3等知识。网上很多文章/帖子经常把gRPC与proto3放在一起,为避免初学者产生混淆,这里先简单介绍一下gRPC、Protobuf、proto3三者以及他们之间的关系: