博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Easy Keygen练习
阅读量:6436 次
发布时间:2019-06-23

本文共 738 字,大约阅读时间需要 2 分钟。

hot3.png

    练习160系列,被打击到了,突然想到Reversing.Kr的Easy_Keygen,就来蹂躏它找找自信....

    还是老规矩,下载下来后,运行程序试试,

按下enter一闪而过。回到文件夹,看到一个"ReadMe.txt"文件,点开发现它提供了一个Serial,要求我们找到对应的Name,而Name->Serial的算法就蕴含在程序中。

    不管它牛鬼蛇神,暂且先放入IDA中分析一下,抱着有提示的想法,我打开String看看,

运气不错,看到了“Correct!”的提升,转到代码窗口并溯源,看到了scanf的调用,

此时,把调试工作转到OD中吧。

    分析得到算法用C++表示:

#include 
using namespace std;int main(){ char key[64]={0}; string name="123456"; int code[3]={0x10,0x20,0x30}; for(int i=0;i
(name[i])^code[i%3]; if(tmp_code<16) //十六进制展开只有一位数的话,前面补‘0’ cout<<0; cout<
<

往下看,

每次取2个字符,进行Serial和Key的对比,不相等则跳转到“Wrong!”。

    算法大体已经出来了,逆向异或计算一下就好了,最后得到的Name(Flag):K3yg3nm3    

 

转载于:https://my.oschina.net/u/3281747/blog/898502

你可能感兴趣的文章
熬过了互联网“寒冬”,接下来的金三银四你该怎么面试进BAT?
查看>>
Java 开源库精选(持续更新)
查看>>
Scrum联盟发布2015年Scrum状况报告
查看>>
在 Ubuntu 16.04 LTS 上安装 Python 3.6.0
查看>>
CloudCare容器技术白皮书
查看>>
苦酒入喉心作痛,红酒入鹅鹅想哭——震惊!勒索病毒想哭靠wine感染了Ubuntu16.04 ...
查看>>
Kubernetes Nginx Ingress Controller源码分析
查看>>
Linux下区分物理CPU、逻辑CPU和CPU核数
查看>>
第二十一章:变换(三)
查看>>
同步异步阻塞非阻塞杂记
查看>>
2018年中国银行业十件大事,“Fintech深度融合,科技子公司遍地” ...
查看>>
Git SSH 连接phacility服务器
查看>>
【客户案例】智能驾驶行业如何上云?
查看>>
foreman源NO_PUBKEY 6F8600B9563278F6
查看>>
揭秘:蚂蚁金服bPaaS究竟是什么?
查看>>
mongo数据库单节点搭建
查看>>
WPF模糊和阴影效果
查看>>
增加关系型数据库驱动配置同步任务
查看>>
别用这种方式聊天,你都不知道自己是怎么聊死的
查看>>
中国香港地区 DDoS- botnet 态势分析
查看>>