更改程序集中的比较功能和 .exe 停止工作 x64dbg

逆向工程 部件 调试 x64dbg
2021-06-22 23:19:16

我试图绕过(破解)一个非常旧的软件,它需要许可证才能解锁所有功能

我正在挖掘具有一点汇编知识的行,我找到了将请求代码的哈希值与我输入的许可证的哈希值进行比较的行

这是这条线(不是 %100 确定) 在此处输入图片说明

arrow1 生成随机请求代码并将输入的许可证保存到参数(不确定)

比较发生的箭头2(相同不确定)

软件将一个hash与你输入的key code的hash进行比较,如果相同就可以使用

每次运行 .exe 时生成的随机许可证请求代码

使用生成随机数

在此处输入图片说明

并使用 HkdfHashAlgorithm 进行散列

在此处输入图片说明

我的问题是

当我je 0x7C1AEF1F改为jne 0x7C1AEF1F

在此处输入图片说明

软件停止工作,当我执行它时,我得到了 1 秒的命令提示符并消失了

在此处输入图片说明

所以我需要改变什么才能将请求代码的哈希值与相同的哈希值进行比较,或者说如果不相等那么激活......

感谢任何帮助

1个回答

算法:((许可证请求代码)+ 0x26946948)^(您的C:序列号0xffffffff如果失败)。

  • 这个keygen我是用golang写的。

  • 或者 javascript 注册机 function keygen(code, serial) { code = parseInt(/([0-9-]{12})/.exec(code)[0].replace(/-/g, '')) return ((code + 0x26946948) ^ parseInt(serial.replace(/-/g, ''), 16)) >>> 0 } // example // '9950-7444-3132-b9' is Licence request code // 'A639-6EDE' is Volume Serial Number of C: keygen('9950-7444-3132-b9', 'A639-6EDE')

连续剧

  • 或在file.exe+178A je file.exe+17B4 ->处修改程序集jne file.exe+17B4以绕过。