Easy Keygen ---- Reversing.kr

链接见标题。

下载所给压缩包,解压后得到两个文件:

直接看ReadMe.txt:

ReversingKr KeygenMe

Find the Name when the Serial is 5B134977135E7D13

用IDA打开Easy Keygen.exe,直接F5


主要伪码

重点在两个scanf的周围。

第一个scanf,是让你输入姓名,第二个scanf是让你输入序列号。

观察for循环语句,重点在那个sprintfaS02x的字符串是%s%02x,意为将输出格式化为两位的十六进制字符串,不够两位的在前面补0。

看sprintf里面最后一个参数,是v9[i] ^ v6 [i]v9[i]是我们输入的姓名,那么v6[i]是什么呢?我们看一下v6声明的部分:

声明

发现v6 v7 v8是连在一块的,并且下面都给他们赋值了。那么下面调用的v6就是有三个元素的数组。

那么结合那个if(i >= 3),发现v6是被循环使用的。

这时候我们就可以写代码来破解了。

将ReadMe给出的序列号,两个两个分开,作为sprintf中运算后的结果,再与v6数组的元素异或,就可以得到flag了。

flag = K3yg3nm3

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容