新出炉的干饭王CRACKME
本帖最后由 小黑thase 于 2021-2-8 21:05 编辑新手写的一个CRACKME,很偷懒,希望做完题的dalao不要喷
成功截图:
PS:3无 无壳 无VM 无反调试
链接:https://pan.baidu.com/s/1scTagOUK_8iTrFFHOjPrJQ
提取码:wdnm
复制这段内容后打开百度网盘手机App,操作更方便哦
黑哥的阴间CM,冲冲冲 额,dalao们不来看一下吗 顶.......... 有没有人来看啊
新手:勿喷
断点到 you failed
直接改eax内容为 you xim
call 00402950 输出函数
星辰屌毛 发表于 2023-2-15 18:41
新手:勿喷
断点到 you failed
哥们,你这个直接给字符串修改了,不是分析的本意啊{:5_117:} 小黑thase 发表于 2023-2-18 17:24
哥们,你这个直接给字符串修改了,不是分析的本意啊
不是达到目的了吗,你这又没有其他东西{:5_116:} 星辰屌毛 发表于 2023-2-18 20:38
不是达到目的了吗,你这又没有其他东西
你说的没有其他东西是什么意思?我的里面放了一套完整的验证逻辑,你的这个行为只是确实是掩耳盗铃了 每条指令为12个字节,由3个 dword 组成,第1,2个是操作数索引,第3个是操作码(0:执行下一条指令;-1:exit;大于0则是jmp,并且其值为目标索引),所有索引都是基于 data_base 的字节偏移量。没化简的keygen:
void keygen() {
DWORD a[] = { 0, 0x34333231, 0, 0x34333231, 0 };////初始条件,这里设置成了"xxxx12324xxxx1234"。
DWORD b[] = { 0, 0, 0, 0 };
DWORD result[] = { 0x82637F78, 0x9386997E };
DWORD c[] = { 0, 1 };
DWORD aTmp = 0;
DWORD bTmp = 0;
/// part1
b = result;
bTmp = 0 - b;
aTmp = 0 - bTmp;
aTmp = aTmp + c;
b = 0 - aTmp;
aTmp = 0 - b;
a = 0 - aTmp;
a = a - a;
/// part2
b = result;
bTmp = 0 - b;
aTmp = 0 - bTmp;
aTmp = aTmp + c;
b = 0 - aTmp;
aTmp = 0 - b;
a = 0 - aTmp;
a = a - a;
printf("pwd: %s\n", (char *)a);
}
页:
[1]
2