Crackme014
Crackme014 的逆向分析
1.程序观察
2.简单查壳
无壳,使用 VB 编写。
3.程序分析
使用 OD 载入程序,搜索字符串
可以看到先前报错时,所提示的语句。
双击跟进程序。
在错误的字符串上方,有一个循环。
循环的最开始,会进行一个比较。若是比较结果正确,会跳转到正确的提示代码处。
在循环的上方,还有一处关键的代码。
程序先得到所输入序列号的长度,如果不为9,则跳转到错误提示。
所以序列号的程度应该是9位。
然后程序建立循环,就是上面那一张图上的大循环。
循环次数是 9 ,也就是序列号的位数。
然后程序将循环的次数,与 0x2 做异或运算
循环的最后,程序将计算出来的值和我们输入的序列号作比较
因为程序是单个单个进行比较的,所以循环要进行 9 次,一次不符合就会跳转到错误提示处。
这样我们就可以通过计算得到正确的序列号
第一位:1 xor 2 = 3
第二位:2 xor 2 = 0
第三位:3 xor 2 = 1
第四位:4 xor 2 = 6
第五位:5 xor 2 = 7
第六位:6 xor 2 = 4
第七位:7 xor 2 = 5
第八位:8 xor 2 = 10
第九位:9 xor 2 = 11
这时候或许就有疑问了,最后两个计算出来的是两位数,怎么办呢?
可以看到,程序计算出来值之后,是取所得值右边的一位,所以最后的序列号是:301674501。
相关文件在我的 Github:https://github.com/UnreachableLove/160-Crackme/tree/master/Crackme014
转载于:https://www.cnblogs.com/white-album2/p/11530302.html
Crackme014相关推荐
- 160个Crackme014
文章目录 查壳 分析程序 验证结果 查壳 还是个VB写的程序,没有壳 分析程序 既然是单纯的一个序列号的保护方式 就没有必要分析算法了,直接追踪序列号就行 首先,根据错误的字符串提示向上找跳转 这两句 ...
- 《少年编程反汇编逆向调试入门》录制成功
少年编程反汇编逆向调试入门 编程要从娃娃抓起,邕城少年编程在行动 让我们一起来编程 手把手教你逆向编程,传授最先进的逆向调试技术,逆向分析系统化工程化,逆向编程不是梦. 李炎 2005年开始反汇编逆向 ...
最新文章
- 不同包下,相同数据结构的两个类进行转换
- AR2220 通过cpu-defend policy处理大量大量arp广播的小技巧
- ci获取当前url链接的分组,控制器,方法
- MyGeneration【ui-原】
- CI框架 守护进程nohup让PHP以常驻内存的形式执行订阅消息
- 【电子信息复试】考研复试常考问题——操作系统
- 工作日报模板_千份财会人通用工作模板:自动核算工资、财务分析报表等等
- [Java基础]类和接口的关系
- 《C++ Primer 第五版》(第4.11-4.12节)——static_cast,const_cast和reinterpret_cast类型转换, 运算符优先级表
- 21克:仅需3天,我们就用Quick BI搭建起数据驾驶舱
- Vue报错Cannot find module ‘webpack-cli/bin/config-yargs‘
- LRU最少最近使用缓存策略
- 甘肃政企云计算机服务平台,西北政企云计算服务中心
- 我的管理成长与思考 - 那些领导的真相,理解和思考
- LCD显示屏加入百叶窗特效显示BMP图片
- 小程序与微信会员卡打通教程
- [二进制学习笔记]LibcSearcher报错no matched libc
- linux zip压缩报错,Linux之zip压缩
- TOOD: Task-aligned One-stage Object Detection 原理与代码解析
- NVIDIA官网下载历史版本方法
热门文章
- html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
- 荣耀平板7可以用鸿蒙么,荣耀平板7定档3月23日发布,一屏可同时开启4个应用
- c语言用单链表实现lru算法,利用单链表实现LRU算法
- vue打包配置的详细说明【config/index.js的build部份】
- 【蓝桥杯】蓝桥杯日期类问题总结
- java 参数类型可变_java – 具有可变类型参数的通用
- 蓝牙模块耳机做蓝牙透传_WiFi、蓝牙在工业领域的数据透传应用_SKYLAB 无线模块...
- Helm 3 完整教程(七):Helm 函数讲解(1)逻辑和流控制函数
- 郑大远程计算机应用基础第09,郑大远程教育《计算机应用基础》第09章在线测试...
- AcWing提高算法课Level-3 第四章 高级数据结构