-1

我正在尝试为大学解决这个问题。我们必须“破解”一个程序,该程序缺少启动程序所需的许可证文件。我们只使用 Linux shell。

所以我已经做的是创建这个丢失的许可证文件。它是一个包含许可证持有者和许可证密钥的 .ini。我现在唯一要寻找的是正确的许可证密钥。任务说我们应该使用“strace”和“ltrace”来解决这个问题。这是我得到的输出:

fopen("license.ini", "r")                                   =0x55c088307380

fgets("LicenseHolder=annabell.krause@ex"..., 4096, 0x55c088307380)  = 0x7ffe72450860

strncmp("LicenseKey=", "LicenseHolder=annabell.krause@ex"..., 11)   = 3

strncmp("LicenseHolder=", "LicenseHolder=annabell.krause@ex"..., 14)    = 0

sscanf(0x7ffe72450860, 0x55c08753c16b, 0x7ffe72450800, 0xffffc000)  = 1

fgets("LicenseKey=aoeklycf", 4096, 0x55c088307380) = 0x7ffe72450860

strncmp("LicenseKey=", "LicenseKey=aoeklycf", 11)           = 0

sscanf(0x7ffe72450860, 0x55c08753c121, 0x7ffe72450840, 0xfffff800)  = 1

fgets("LicenseKey=aoeklycf", 4096, 0x55c088307380)          = 0

memfrob(0x7ffe72450840, 8, 0, 0xfbad2498)                   = 0x7ffe72450840

strncmp("KEOAFSIL", "aoeklycf", 8)                          = -22

fwrite("ERROR: License key is invalid.\n", 1, 31, 0x7faeabe60680
ERROR: License key is invalid.
)                                   = 31

+++ exited (status 1) +++

所以我想答案就在最后的 memfrob 和 strncmp 函数中。但我不知道下一步是什么。

4

1 回答 1

4
于 2019-06-30T15:32:44.020 回答