将程序通过X64Dbg打开,可以看到程序的二进制汇编代码
常规搜索字符串,可以看到在弹框中出现的两个字符串
进入到字符串所在位置,即可进入程序的核心代码
可以看到一个比较跳转逻辑
cmp eax 0
je abexcm5.401117
也就是说通过此处的判断,可以改变程序的跳转方向,那我如果我们需要爆破该程序,只需要在此处改变此处汇编代码,将je改为jmp
当然也可以在程序运行到此处的时候,修改eax的值,同样可以进行爆破
如果想要对该程序进行分析,则需要分析跳转逻辑之前的代码
在上方,存在GetDlgItemTextA,是一个获取会话窗输入的函数,可以从此处开始打断点,下方有一个GetVolumeInformation函数,该函数会获取与指定根目录关联的文件系统和卷的相关信息,不过这个不重要,应为运行到此处的时候,可以在右侧看到获取到的值,不同的电脑应该是不一样的
接下来是一个字符串拼接 lstrcatA,可以看到拼接结果 L7c Pro4562-ABEX
继续往下,则会进入一个循环,大致作用就是将前四位都 +1 循环两次,可以在下方看到对应操作后的值
我这边的最后结果是N9E“Pro4562-ABEX
然后则又是一个字符串拼接
其实从这里就可以看到完整的序列 L2c-5781N9E"Pro4562-ABEX测试一下,测试成功
所以该程序的整体算法就是,获取到盘符字符串,然后将字符串的前四位执行 +2操作,最后与指定的两个字符串进行前后拼接即可