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相关推荐

  1. 160个Crackme014

    文章目录 查壳 分析程序 验证结果 查壳 还是个VB写的程序,没有壳 分析程序 既然是单纯的一个序列号的保护方式 就没有必要分析算法了,直接追踪序列号就行 首先,根据错误的字符串提示向上找跳转 这两句 ...

  2. 《少年编程反汇编逆向调试入门》录制成功

    少年编程反汇编逆向调试入门 编程要从娃娃抓起,邕城少年编程在行动 让我们一起来编程 手把手教你逆向编程,传授最先进的逆向调试技术,逆向分析系统化工程化,逆向编程不是梦. 李炎 2005年开始反汇编逆向 ...

最新文章

  1. 不同包下,相同数据结构的两个类进行转换
  2. AR2220 通过cpu-defend policy处理大量大量arp广播的小技巧
  3. ci获取当前url链接的分组,控制器,方法
  4. MyGeneration【ui-原】
  5. CI框架 守护进程nohup让PHP以常驻内存的形式执行订阅消息
  6. 【电子信息复试】考研复试常考问题——操作系统
  7. 工作日报模板_千份财会人通用工作模板:自动核算工资、财务分析报表等等
  8. [Java基础]类和接口的关系
  9. 《C++ Primer 第五版》(第4.11-4.12节)——static_cast,const_cast和reinterpret_cast类型转换, 运算符优先级表
  10. 21克:仅需3天,我们就用Quick BI搭建起数据驾驶舱
  11. Vue报错Cannot find module ‘webpack-cli/bin/config-yargs‘
  12. LRU最少最近使用缓存策略
  13. 甘肃政企云计算机服务平台,西北政企云计算服务中心
  14. 我的管理成长与思考 - 那些领导的真相,理解和思考
  15. LCD显示屏加入百叶窗特效显示BMP图片
  16. 小程序与微信会员卡打通教程
  17. [二进制学习笔记]LibcSearcher报错no matched libc
  18. linux zip压缩报错,Linux之zip压缩
  19. TOOD: Task-aligned One-stage Object Detection 原理与代码解析
  20. NVIDIA官网下载历史版本方法

热门文章

  1. html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
  2. 荣耀平板7可以用鸿蒙么,荣耀平板7定档3月23日发布,一屏可同时开启4个应用
  3. c语言用单链表实现lru算法,利用单链表实现LRU算法
  4. vue打包配置的详细说明【config/index.js的build部份】
  5. 【蓝桥杯】蓝桥杯日期类问题总结
  6. java 参数类型可变_java – 具有可变类型参数的通用
  7. 蓝牙模块耳机做蓝牙透传_WiFi、蓝牙在工业领域的数据透传应用_SKYLAB 无线模块...
  8. Helm 3 完整教程(七):Helm 函数讲解(1)逻辑和流控制函数
  9. 郑大远程计算机应用基础第09,郑大远程教育《计算机应用基础》第09章在线测试...
  10. AcWing提高算法课Level-3 第四章 高级数据结构