Encoder
程序主要功能
将输入的文件进行特殊的加密后输出
主要步奏
1 | signed __int64 __fastcall sub_402C77(const char *input) |
主要是由encrypt函数完成加密过程,可以看到函数传入一个加密使用的表
1 | signed __int64 __fastcall sub_40190B(_DWORD *a1, unsigned __int16 *a2, __int64 a3) |
只需要下断点然后将表dump出来就可以了
1 | fp = open("C:\\Users\\0xEASONs\\Desktop\\byte.txt", "w") |
然后直接逆加密函数就可以了
程序逻辑
ida 翻译的加密函数的伪代码有问题,看汇编可以看出来,正确的代码如下
1 | v3 = (input[0]|input[1]<<8|input[2]<<16|input[3]<<24)^table[1024]; |
用C写程序验证
1 |
|
直接逆
然后直接逆,贴出脚本
1 |
|