aes加密类型转换问题
通过打开文件获取 shellcode.c现在是可以正常输出的
使用的aes库是:https://github.com/Tu3k/AES_Encry
这里有两个疑问:
1. unsigned char Temp里面现在存的是不带 \x 字符的shellcode,如何在循环时加上例:\xfc
2. 类型转换怎么符合他要求,弄了一下午 还是不清楚
加解密数据后,看内存里面,如果文件头正常直接强转用就行
我有用过base64加解密shellcode的,打乱后其实和其它加解密效果差不多一样
经过CryptStringToBinary的解密速度要快的很多 花边下丶情未央 发表于 2022-5-7 18:49
加解密数据后,看内存里面,如果文件头正常直接强转用就行
我有用过base64加解密shellcode的,打乱后其实和其 ...
强转试了,不行,一堆码 不带 \x 字符就是十六进制文本吧。
"bc"字符串->0xBC字节是吧?你搜十六进制文本转字节 xiaochen666 发表于 2022-5-7 18:59
强转试了,不行,一堆码
我就想知道你加密这个code是给哪个语言用?干嘛非要纠结打印出来的数据带\x呢,这个只是表示十六进制数据
另外 你不用去纠结申请 无符号的内存还是有符号的,你看一下内存一不一样就行了,还有加密后最终还是要解密使用,最重要就是看解密后能不能加载上就可以了 学到了学到了 花边下丶情未央 发表于 2022-5-7 19:16
我就想知道你加密这个code是给哪个语言用?干嘛非要纠结打印出来的数据带\x呢,这个只是表示十六进制数据
...
十六进制到没怎么纠结,主要是AES_encrypt 这个函数要 char* 型我不会转师傅,强转和 (char*)& 都输出的不沾边的 看着改改应该能用int main(int argc, char* argv[])
{
char buf[] = "\\x00\\x01\\x02\\x03\\x04\\x05\\xff\\x06";
char str = { 0 };
char *Temp = new char;
char key[] = "abcd1234abcd1234";
char cData;
int j = 0;
int k = 0;
//减去字符串末尾0的位置
for (int i = 0; i < sizeof(buf)-1; i += 4)
{
str = buf;
str = buf;
sscanf(str, "%02x", &k);
Temp = (char)k;
j++;
}
int clen = AES_encrypt(Temp, sizeof(buf)/4, cData, key);
printf("%d", clen);
delete[] Temp;
return 0;
} 学习了,学习了 苏紫方璇 发表于 2022-5-7 20:24
看着改改应该能用int main(int argc, char* argv[])
{
我愿称你为最强战神,用这个思路 做出来了{:301_978:}
页:
[1]
2