cryptography - 使用给定的 .exe GUI 反转解密算法

标签 cryptography reverse-engineering decompiling analyzer

我正在使用注册机应用程序 (.exe)。它的 GUI 中有两个输入字段:

  1. p1 - 至少 1 位数字,最多 10 位数字 - ^[0-9]{1,10}$
  2. p2 - 最多 12 个字符 - 大写字母/数字/下划线 - ^[A-Z0-9_]{0,12}$

generate按钮生成一个 key x

x - 正好 20 位数字 - ^[0-9]{20}$

对于每一对(p1,p2),只有一个x(换句话说:f(p1,p2) = x > 是一个函数)

我对其加密算法感兴趣。

有什么方法可以对算法进行逆向工程吗?

我想到了两种方法:

  1. 反编译。我用过snowman ,但输出污染太大。反编译后的代码可能包含不相关的部分,例如GUI。
  2. 分析输入和输出。我想知道是否有任何选项可以通过分析一组 f(p1,p2) = x 结果来确定所使用的加密算法。

最佳答案

正如您提到的,使用雪人或其他一些反编译工具可能是可行的方法。

我怀疑您是否能够仅通过查看输入输出组合来确定算法,因为可以编写任何类型的任意算法,并且可以以任何方式运行。

也许你可以问问作者他们使用的是什么算法?

关于cryptography - 使用给定的 .exe GUI 反转解密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64585950/

相关文章:

php - 如何获取 php hash_pbkdf2 衰减值

unicode - 如何诊断和逆转(而非阻止)Unicode 损坏

android - (ART/DVM) 在 :try_end instruction results in VerifyError 之前插入指令

java - 如何防止在仅 Java 客户端程序中滥用客户端 secret ?

haskell - 将 haskell 代码概括/编译为 lambda

.net-core - .Net Core 3 自包含的单个可执行文件可以反编译吗?

java - 有人知道 Jasypt(Java 加密库)吗?

encryption - 校验和的可视化表示算法(例如 SHA)

java - 将 RSA key 从 BigIntegers 转换为SubjectPublicKeyInfo 形式

mysql - 从现有 MySQL 数据库生成 ER 图,为 CakePHP 创建