首页
社区
课程
招聘
[原创]ctf逆向出题用的加密字符串宏(写着玩的,自己用)
发表于: 1天前 460

[原创]ctf逆向出题用的加密字符串宏(写着玩的,自己用)

1天前
460
#pragma once
//vs编译
//最大字符串长度64
//宽字节使用:enc_str_wc(str1, 11, 0xfade, 'R', 'a', 's', 'h', 'o', 'm', 'o', 'n', '?', '?', '?');
//单字节使用:enc_str_c(str1, 14, 0x66, 'n', '0', '0', 'b', 'z', 'x', 's', 'b', 'h', 'a', 'h', 'a', 'h', 'a');
//str1为字符串指针,可直接使用
#define W(x) L##x
#define first(x,...) x
#define remains(x,...) __VA_ARGS__
#define call(x,...) m(__VA_ARGS__)
#define foreach_1(m,key,x) m(x,key)
#define foreach_2(m,key,...) m(first(__VA_ARGS__),key),foreach_1(m,key,remains(__VA_ARGS__))
#define foreach_3(m,key,...) m(first(__VA_ARGS__),key),foreach_2(m,key,remains(__VA_ARGS__))
#define foreach_4(m,key,...) m(first(__VA_ARGS__),key),foreach_3(m,key,remains(__VA_ARGS__))
#define foreach_5(m,key,...) m(first(__VA_ARGS__),key),foreach_4(m,key,remains(__VA_ARGS__))
#define foreach_6(m,key,...) m(first(__VA_ARGS__),key),foreach_5(m,key,remains(__VA_ARGS__))
#define foreach_7(m,key,...) m(first(__VA_ARGS__),key),foreach_6(m,key,remains(__VA_ARGS__))
#define foreach_8(m,key,...) m(first(__VA_ARGS__),key),foreach_7(m,key,remains(__VA_ARGS__))
#define foreach_9(m,key,...) m(first(__VA_ARGS__),key),foreach_8(m,key,remains(__VA_ARGS__))
#define foreach_10(m,key,...) m(first(__VA_ARGS__),key),foreach_9(m,key,remains(__VA_ARGS__))
#define foreach_11(m,key,...) m(first(__VA_ARGS__),key),foreach_10(m,key,remains(__VA_ARGS__))
#define foreach_12(m,key,...) m(first(__VA_ARGS__),key),foreach_11(m,key,remains(__VA_ARGS__))
#define foreach_13(m,key,...) m(first(__VA_ARGS__),key),foreach_12(m,key,remains(__VA_ARGS__))
#define foreach_14(m,key,...) m(first(__VA_ARGS__),key),foreach_13(m,key,remains(__VA_ARGS__))
#define foreach_15(m,key,...) m(first(__VA_ARGS__),key),foreach_14(m,key,remains(__VA_ARGS__))
#define foreach_16(m,key,...) m(first(__VA_ARGS__),key),foreach_15(m,key,remains(__VA_ARGS__))
#define foreach_17(m,key,...) m(first(__VA_ARGS__),key),foreach_16(m,key,remains(__VA_ARGS__))
#define foreach_18(m,key,...) m(first(__VA_ARGS__),key),foreach_17(m,key,remains(__VA_ARGS__))
#define foreach_19(m,key,...) m(first(__VA_ARGS__),key),foreach_18(m,key,remains(__VA_ARGS__))
#define foreach_20(m,key,...) m(first(__VA_ARGS__),key),foreach_19(m,key,remains(__VA_ARGS__))
#define foreach_21(m,key,...) m(first(__VA_ARGS__),key),foreach_20(m,key,remains(__VA_ARGS__))
#define foreach_22(m,key,...) m(first(__VA_ARGS__),key),foreach_21(m,key,remains(__VA_ARGS__))
#define foreach_23(m,key,...) m(first(__VA_ARGS__),key),foreach_22(m,key,remains(__VA_ARGS__))
#define foreach_24(m,key,...) m(first(__VA_ARGS__),key),foreach_23(m,key,remains(__VA_ARGS__))
#define foreach_25(m,key,...) m(first(__VA_ARGS__),key),foreach_24(m,key,remains(__VA_ARGS__))
#define foreach_26(m,key,...) m(first(__VA_ARGS__),key),foreach_25(m,key,remains(__VA_ARGS__))
#define foreach_27(m,key,...) m(first(__VA_ARGS__),key),foreach_26(m,key,remains(__VA_ARGS__))
#define foreach_28(m,key,...) m(first(__VA_ARGS__),key),foreach_27(m,key,remains(__VA_ARGS__))
#define foreach_29(m,key,...) m(first(__VA_ARGS__),key),foreach_28(m,key,remains(__VA_ARGS__))
#define foreach_30(m,key,...) m(first(__VA_ARGS__),key),foreach_29(m,key,remains(__VA_ARGS__))
#define foreach_31(m,key,...) m(first(__VA_ARGS__),key),foreach_30(m,key,remains(__VA_ARGS__))
#define foreach_32(m,key,...) m(first(__VA_ARGS__),key),foreach_31(m,key,remains(__VA_ARGS__))
#define foreach_33(m,key,...) m(first(__VA_ARGS__),key),foreach_32(m,key,remains(__VA_ARGS__))
#define foreach_34(m,key,...) m(first(__VA_ARGS__),key),foreach_33(m,key,remains(__VA_ARGS__))
#define foreach_35(m,key,...) m(first(__VA_ARGS__),key),foreach_34(m,key,remains(__VA_ARGS__))
#define foreach_36(m,key,...) m(first(__VA_ARGS__),key),foreach_35(m,key,remains(__VA_ARGS__))
#define foreach_37(m,key,...) m(first(__VA_ARGS__),key),foreach_36(m,key,remains(__VA_ARGS__))
#define foreach_38(m,key,...) m(first(__VA_ARGS__),key),foreach_37(m,key,remains(__VA_ARGS__))
#define foreach_39(m,key,...) m(first(__VA_ARGS__),key),foreach_38(m,key,remains(__VA_ARGS__))
#define foreach_40(m,key,...) m(first(__VA_ARGS__),key),foreach_39(m,key,remains(__VA_ARGS__))
#define foreach_41(m,key,...) m(first(__VA_ARGS__),key),foreach_40(m,key,remains(__VA_ARGS__))
#define foreach_42(m,key,...) m(first(__VA_ARGS__),key),foreach_41(m,key,remains(__VA_ARGS__))
#define foreach_43(m,key,...) m(first(__VA_ARGS__),key),foreach_42(m,key,remains(__VA_ARGS__))
#define foreach_44(m,key,...) m(first(__VA_ARGS__),key),foreach_43(m,key,remains(__VA_ARGS__))
#define foreach_45(m,key,...) m(first(__VA_ARGS__),key),foreach_44(m,key,remains(__VA_ARGS__))
#define foreach_46(m,key,...) m(first(__VA_ARGS__),key),foreach_45(m,key,remains(__VA_ARGS__))
#define foreach_47(m,key,...) m(first(__VA_ARGS__),key),foreach_46(m,key,remains(__VA_ARGS__))
#define foreach_48(m,key,...) m(first(__VA_ARGS__),key),foreach_47(m,key,remains(__VA_ARGS__))
#define foreach_49(m,key,...) m(first(__VA_ARGS__),key),foreach_48(m,key,remains(__VA_ARGS__))
#define foreach_50(m,key,...) m(first(__VA_ARGS__),key),foreach_49(m,key,remains(__VA_ARGS__))
#define foreach_51(m,key,...) m(first(__VA_ARGS__),key),foreach_50(m,key,remains(__VA_ARGS__))
#define foreach_52(m,key,...) m(first(__VA_ARGS__),key),foreach_51(m,key,remains(__VA_ARGS__))
#define foreach_53(m,key,...) m(first(__VA_ARGS__),key),foreach_52(m,key,remains(__VA_ARGS__))
#define foreach_54(m,key,...) m(first(__VA_ARGS__),key),foreach_53(m,key,remains(__VA_ARGS__))
#define foreach_55(m,key,...) m(first(__VA_ARGS__),key),foreach_54(m,key,remains(__VA_ARGS__))
#define foreach_56(m,key,...) m(first(__VA_ARGS__),key),foreach_55(m,key,remains(__VA_ARGS__))
#define foreach_57(m,key,...) m(first(__VA_ARGS__),key),foreach_56(m,key,remains(__VA_ARGS__))
#define foreach_58(m,key,...) m(first(__VA_ARGS__),key),foreach_57(m,key,remains(__VA_ARGS__))
#define foreach_59(m,key,...) m(first(__VA_ARGS__),key),foreach_58(m,key,remains(__VA_ARGS__))
#define foreach_60(m,key,...) m(first(__VA_ARGS__),key),foreach_59(m,key,remains(__VA_ARGS__))
#define foreach_61(m,key,...) m(first(__VA_ARGS__),key),foreach_60(m,key,remains(__VA_ARGS__))
#define foreach_62(m,key,...) m(first(__VA_ARGS__),key),foreach_61(m,key,remains(__VA_ARGS__))
#define foreach_63(m,key,...) m(first(__VA_ARGS__),key),foreach_62(m,key,remains(__VA_ARGS__))
#define foreach_64(m,key,...) m(first(__VA_ARGS__),key),foreach_63(m,key,remains(__VA_ARGS__))
#define foreach(n,m,key,...) foreach_##n(m,key,__VA_ARGS__)
#define enc_c(x,key) ((x)^key)
#define enc_wc(x,key) (W(x)^key)
#define enc_str_wc(name,len,key,...) wchar_t name[(len)+1]={foreach(len,enc_wc,key,__VA_ARGS__),0};for(DWORD i=0;i<(len);i++){(name)[i]=(name)[i]^key;}
#define enc_str_c(name,len,key,...) char name[(len)+1]={foreach(len,enc_c,key,__VA_ARGS__),0};for(DWORD i=0;i<(len);i++){(name)[i]=(name)[i]^key;}

#(滑稽)


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 23小时前 被n00bzx编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2561
活跃值: (3148)
能力值: ( LV12,RANK:276 )
在线值:
发帖
回帖
粉丝
2
可能很弱智,但是我写了45分钟...
1天前
0
雪    币: 2561
活跃值: (3148)
能力值: ( LV12,RANK:276 )
在线值:
发帖
回帖
粉丝
3
不想写c++,莫得模板,所以
1天前
0
雪    币: 2561
活跃值: (3148)
能力值: ( LV12,RANK:276 )
在线值:
发帖
回帖
粉丝
4
改了一下,可以传任意key了
23小时前
0
雪    币: 2561
活跃值: (3148)
能力值: ( LV12,RANK:276 )
在线值:
发帖
回帖
粉丝
5
又改了一下,支持宽字节和单字节
23小时前
0
游客
登录 | 注册 方可回帖
返回