全部合集的获取请关注微信公众号:逆向驿站

回复:160

即可获得其余合集

以下是示例文章


160个CrackMe深度解析合集-001

提倡“刨根问底“,拒绝”浅尝辄止“,160个CrackMe,有价值的逐行阅读反汇编代码,分析算法,写注册机,不知不觉变大神,只爆破永远是菜鸡。本期第一个很简单,学习完可以额外解决和理解od中“在可执行文件中无法定位数据”的问题。

详解视频

width="650" height="420" src="https://v.qq.com/txp/iframe/player.html?vid=q0827dvjtxk" allowfullscreen="true">

准备

【环境和工具】

  • win7/xp虚拟机环境
  • 目标程序:CrackMe01(Acid burn.exe)
  • ollydbg
  • LordPe
  • 增加区段工具.exe

【学习层次】

  • 可以爆破
  • 可以找到正确注册码
  • 掌握阅读反汇编代码来分析算法,搞注册机

【网盘链接】
注意:为避免链接失效,请在《逆向驿站》公众号中回复:网盘,获取最新课件源码等网盘链接

图文记录

一.观察程序逻辑
程序开始一个弹框,有两个输入注册码的地方,一个是只要注册码,一个需要用户名和注册码
弹框1

弹框2

弹框3

二.od中加载程序根据弹框内容定位关键跳,分析代码
弹窗1
这里的call,nop掉或je改jmp就不弹了,过于简单略过

弹窗2
定位关键跳后浏览反汇编,注释+标签后截图如下,可看到整个流程仅仅是两个字符串"Hello" “Dude!” 和一个空格拼接起来后是"Hello Dude!",然后和自己输入的"654321"作比较,没有什么算法值得研究,找到了注册码就行了

弹框3
有用户名有注册码,可以研究一下算法
1.输入伪码
输入用户名“123456”,注册码“654321”

2.下断点,逐行步过分析反汇编代码
根据弹框字符串定位到关键跳附近代码,向上浏览找到整块代码入口点
【0042F9A9 |. 55 push ebp】下断点,开始阅读,发现全局变量地址[0x431750]比较敏感,并赋值0x29

3.发现算法
继续F8走过上面一堆的关于用户名合规的判断后,再次出现全局变量[0x431750]地址,仔细阅读发现是算法,算法为:取出用户名字符串在内存中的第一个字节,乘以全局变量[0x431750],即0x29,再乘以2,并存入[0x431750].
此时是十六进制数字型,随后再下方的一个call中会先转换为十进制数字并转为字符串。

4.验证流程分析
如下图注释内容和标签,需要注意的是call 406718这个函数就是上面提到的先转换十进制再变字符串的函数,很多人凭经验会第一次把他当为算法函数其实不然。

5.注册机
知道了算法,那么我们开始写注册机,代码如下,我用的mfc写的

void CCM002Dlg::OnOK()
{// TODO: Add extra validation here//CDialog::OnOK();char szName[100]={0};int nKey = 0;char szkey [100] = {0};GetDlgItemText(IDC_EDIT1,szName,100);if (strlen(szName)>0){nKey = (int)szName[0];sprintf(szkey,"CW-%d-CRACKED",nKey*0x29*0x2);SetDlgItemText(IDC_EDIT2,szkey);} else{const char * szTitle="逆向驿站提示您";const char * szText="用户名不能为空!";MessageBoxA(szText,szTitle);}}

效果如下

番外

研究解决OD中“在可执行文件中无法定位数据”
1.写messagebox内联补丁时候遇到“在可执行文件中无法定位数据”
分析后发现程序注册码验证过程中当运行完0042FAE5(反汇编代码为call 004039AC)后,参数三即epb寻址中的堆栈地址[epb-0xc]就会传入根据用户名计算出的正确验证码,那么我们就直接jmp到我们自己的代码利用一个messagebox函数来弹出来这个验证码,也就相当于一个另类的注册机了,写完了作者准备保存的时候发现

2.原因和解决
视频中有详细讲解,新手可以看视频,图文写的比较见简练

  • 原因是:增加代码后,整个代码长度超出了Code区段的大小
  • 解决是:增加一个新区段,来写内联补丁
  • 要给程序增加一个自己的区段,而且可读可写可执行,利用网盘中的“增加区 段工具.exe”或"lordpe均可以"
    如图,修改代码跳转至内联补丁

    内联补丁代码

    效果如下动图


全部合集的获取请关注公众号:逆向驿站

回复:160,即可获得其余合集


博客地址:https://blog.csdn.net/hehedf007

相关文章
  • 干货-如何逆向解决QT程序汉化乱码问题
  • 步子大,还想不扯X"是伪命题 --2018年信息泄露事件盘点​​​​​​​​​​​​​​

视频+图文+注册+机源码 | 160个CrackMe深度解析合集 | 逆向破解入门相关推荐

  1. Crackme006 - 全新160个CrackMe学习系列(图文|视频|注册机源码)

    知乎:逆向驿站 原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰, ...

  2. Crackme006 - 全新160个CrackMe深度解析系列(图文+视频+注册机源码)

    原文链接 CrackMe006 | 难度适中适合练手 |160个CrackMe深度解析(图文+视频+注册机源码) crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常 ...

  3. java写的注册机源码_MyEclipse6.5注册机源码

    MyEclipse6.5注册机源码 2011/9/14 8:38:34  myfirstcup  http://myfirstcup.iteye.com  我要评论(0) 摘要:packagecom. ...

  4. Windows优化大师注册机源码

    Windows优化大师注册机源码 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics ...

  5. CrackMe007 | 难度适当提高 |160个CrackMe深度解析(图文+视频+注册机源码)

    作者:逆向驿站 微信公众号:逆向驿站 知乎:逆向驿站 crackme007,是006的升级版,程序开发者给出的难度是3星,可能是迷惑有点多?个人觉得条线还是比较清晰,难度也不大,依然适合新手 准备 [ ...

  6. CrackMe006 | 160个crackme精解系列(图文+视频+注册机源码)

    作者:逆向驿站 微信公众号:逆向驿站 知乎:逆向驿站 crackme006,依然是delphi的,而且没壳子,条线比较清晰,算法也不难,非常适合新入门的来练习. 快过年了,Crackme系列年前就停更 ...

  7. VS平台账号注册机--源码--详细文档--分析-原理-实现

    VS平台账号注册机的原理和实现 Kimm King Kimmking@163.com 2008年12月27日 摘要:通过分析vs平台的网页注册方式,分析验证码,使用c#模拟表单提交,实现账号自动注册. ...

  8. lisp注册注册机源码_[求助]请教在lisp中加入注册码

    本帖最后由 作者 于 2007-4-4 10:52:09 编辑 (vl-load-com) (vl-load-all "Register") (UseLimit) ;;;请在任何L ...

  9. SouceInsight v4 注册机源码

    下面c++代码可以用来生成Source Insight v4.0的注册码,网络验证还需要各位自己去patch一下!~ #include "stdafx.h" #include &l ...

最新文章

  1. 2022-2028年中国香薰行业市场研究及前瞻分析报告
  2. 工程能力提升管理之道
  3. android 6.0权限库,Android 6.0动态权限适配
  4. mongodb 库数量限制_MongoDB in 数量限制
  5. python是不是汇编语言_python是汇编语言吗
  6. 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
  7. cocos2d-x帧动画实现(续)
  8. POJ1270 Following Orders(拓扑排序+回溯)
  9. Atitit react 详细使用总结 绑定列表显示 attilax总结 1. 前言 1 1.1. 资料数量在百度内的数量对比 1 1.2. 版本16 v15.6.1 1 1.3. 引入js 2
  10. 手柄游戏之《恶魔城暗影之王》推荐
  11. python菜鸟教程 | 素数
  12. PHP 获取微视无水印源地址_PHP实现西瓜视频、头条视频地址提取 无水印视频解析 视频去水印源码...
  13. 按字符计算和字节计算的区别
  14. Adaptable DL with nGraph™ Compiler and ONNX*
  15. 赵小楼《天道》《遥远的救世主》深度解析(6)为什么肖亚文说丁元英是魔是鬼都可以,就是不是人?
  16. JS基础知识(二十八):箭头函数
  17. C语言类型限定符(type specifier)(一)——volatile详细教程
  18. 每期智力题、数量关系题、推理判断题
  19. cocoscreator html5,Cocos Creator H5支持剪贴板复制功能
  20. 120篇精华文章打包送,干货慎入!

热门文章

  1. 1 - 行列式 - 矩阵 的运算
  2. 【蓝桥杯】入门考试十道练习题
  3. InSAR技术监测大坝形变2——InSAR技术的研究现状
  4. hil测试matlab模型下载,电力电子系统的硬件在环 (HIL) 测试
  5. 【文字版】津津有味:感染新冠后没食欲,那咱也得吃饭啊!
  6. 动态可缓存的内容管理系统(CMS)
  7. PHP 实现定时任务的几种方法
  8. 投资大佬邱国鹭 首曝22年股市投研秘籍
  9. LeetCode 221. Maximal Square (最大正方形)
  10. 编写程序 ,用户输入一段英文 ,然后输出这段英文中所有长度为 3 个字母的单词 。