吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4753|回复: 1
收起左侧

[原创] 160个Crackme #33

  [复制链接]
我形我塑 发表于 2015-11-16 18:36
本帖最后由 我形我塑 于 2015-11-16 19:23 编辑

破解目标:Crackme #33 Cruehead.1.rar (3.68 KB, 下载次数: 5)
破解目的:学习交流
使用工具:OD
破解过程:
一、查壳,无壳,汇编语言。
二、试运行,单击Help项弹出菜单,选择Register子菜单,随意输入用户名及注册码,然后点OK。结果如图:
       1.jpg
三、OD载入,在反汇编窗口右键弹出菜单中选“中文搜索引擎à智能搜索”,来到这里:

         2.jpg
      知道为什么要试运行程序了吧?能找到这个就好办多了。点选其中任意一行(我更喜欢Good work,mate!这样的话),双击或回车,返回反汇编窗口。代码如下:

       3.jpg
      咦?怎么没有跳到这里的跳转语句啊?老革命遇到新问题了!“路曼曼其修远兮,吾将上下以求索”,“求之不得,寤寐思服”。
四、“山重水复疑无路,柳暗花明又一村”。这是什么?
         点选0040134D这行,反汇编窗口下显示:Localcall from 0040124C。右键菜单选Go to CALL from 0040124C,如图:

       4.jpg

       看到了吧?00401243处的JE是破解的关键。在这下个F2断点,F9运行,输入用户名
       假码,点OK,断在这里了。如果要爆破,右键点这行,选“汇编”,把JE改成JMP,然后“复制到可执行文件”->“保存文件”,试试效果吧!
五、分析算法。
      如果要JE跳向成功,EAX与EBX的值必须相等;EAX的值来自0040122D处的调用(根据跟踪分析,它实现的是将用户名变为大写,将每个字母的ASCII值进行累加,然后与0x5678异或),EBX的值来自 00401238处的调用(将假码字符串转换为数值,再与0x1234异或)。有兴趣的可以在这两个调用处下断点,F7步入,F8单步跟一下。


     最后附上注册机代码:
  #include "stdafx.h"
  #include <windows.h>
  voidCrackme33();
  int_tmain(int argc, _TCHAR* argv[])
  {
     Crackme33();
     return 0;
  }
  voidCrackme33()
  {
   char szUser[20]={0};
  
   printf("\n\n\t用户名 ");
   scanf("%s",szUser);
   char *ptr=strupr(szUser);
   int nUserVal=0;
   while(*ptr)
        nUserVal+=*ptr++;
   nUserVal=nUserVal^0x1234^0x5678;
   itoa(nUserVal,szUser,10);
   printf("\t注册码 %d\n\n",nUserVal);
  }


免费评分

参与人数 2威望 +1 热心值 +2 收起 理由
Hmily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Sound + 1 已经处理,感谢您对吾爱破解论坛的支持!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 我形我塑 发表于 2015-11-23 20:04
感谢大神的鼓励
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 16:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表