代码注释

main^2
shenzexi 2 months ago
parent 6b6deaab87
commit 9c546a158b

@ -1,20 +1,27 @@
#ifndef __LOADER_H__
#define __LOADER_H__
// 定义加密和解密的宏实际调用do_encode函数
#define do_encrypt(ptr, len, key) do_encode(ptr, len, key)
#define do_decrypt(ptr, len, key) do_encode(ptr, len, key)
// 定义一个静态内联函数用于实现32位值的循环左移操作
static inline unsigned int custom_rol32(unsigned int val, int n)
{
return ((val << n) | (val >> (32 - n)));
// 循环左移n位右移(32 - n)位,然后将两者的结果合并
return ((val << n) | (val >> (32 - n)));
}
// 定义一个静态内联函数,用于执行编码操作
static inline void do_encode(void *ptr, unsigned int len, unsigned int key)
{
while (len > sizeof(key)) {
*(unsigned int *)ptr ^= custom_rol32(key ^ len, (len % 13));
len -= sizeof(key), ptr += sizeof(key);
}
// 当剩余长度大于键值长度时,继续执行编码操作
while (len > sizeof(key)) {
// 使用异或和循环左移操作对数据进行编码
*(unsigned int *)ptr ^= custom_rol32(key ^ len, (len % 13));
// 更新剩余长度和指针位置,准备处理下一部分数据
len -= sizeof(key), ptr += sizeof(key);
}
}
#endif
#endif
Loading…
Cancel
Save