这两个程序都是比较简单但是还是比较有趣的,都是汇编直接编写,没有加壳,分析如下:
033:
od载入进行关键点的分析:
代码如下:

00401241   .  3BC3          cmp eax,ebx
00401243   .  74 07         je short Cruehead.0040124C
00401245   .  E8 18010000   call Cruehead.00401362
0040124A   .^ EB 9A         jmp short Cruehead.004011E6
0040124C   >  E8 FC000000   call Cruehead.0040134D
00401251   .^ EB 93         jmp short Cruehead.004011E6

如果eax和ebx相等,那么成功,那么分析eax和ebx。上面有一句pop eax,我们往上看代码

00401228   .  68 8E214000   push Cruehead.0040218E
0040122D   .  E8 4C010000   call Cruehead.0040137E
00401232   .  50            push eax
00401233   .  68 7E214000   push Cruehead.0040217E
00401238   .  E8 9B010000   call Cruehead.004013D8

这两个call分析一下,然后程序就非常清楚了

0040137E  /$  8B7424 04     mov esi,dword ptr ss:[esp+0x4]
00401382  |.  56            push esi                                 ;  Cruehead.<ModuleEntryPoint>
00401383  |>  8A06          /mov al,byte ptr ds:[esi]
00401385  |.  84C0          |test al,al
00401387  |.  74 13         |je short Cruehead.0040139C
00401389  |.  3C 41         |cmp al,0x41
0040138B  |.  72 1F         |jb short Cruehead.004013AC
0040138D  |.  3C 5A         |cmp al,0x5A
0040138F  |.  73 03         |jnb short Cruehead.00401394
00401391  |.  46            |inc esi                                 ;  Cruehead.<ModuleEntryPoint>
00401392  |.^ EB EF         |jmp short Cruehead.00401383
00401394  |>  E8 39000000   |call Cruehead.004013D2
00401399  |.  46            |inc esi                                 ;  Cruehead.<ModuleEntryPoint>
0040139A  |.^ EB E7         \jmp short Cruehead.00401383
0040139C  |>  5E            pop esi                                  ;  kernel32.76D38744
0040139D  |.  E8 20000000   call Cruehead.004013C2
004013A2  |.  81F7 78560000 xor edi,0x5678
004013A8  |.  8BC7          mov eax,edi                              ;  Cruehead.<ModuleEntryPoint>
004013D8  /$  33C0          xor eax,eax
004013DA  |.  33FF          xor edi,edi                              ;  Cruehead.<ModuleEntryPoint>
004013DC  |.  33DB          xor ebx,ebx
004013DE  |.  8B7424 04     mov esi,dword ptr ss:[esp+0x4]
004013E2  |>  B0 0A         /mov al,0xA
004013E4  |.  8A1E          |mov bl,byte ptr ds:[esi]
004013E6  |.  84DB          |test bl,bl
004013E8  |.  74 0B         |je short Cruehead.004013F5
004013EA  |.  80EB 30       |sub bl,0x30
004013ED  |.  0FAFF8        |imul edi,eax
004013F0  |.  03FB          |add edi,ebx
004013F2  |.  46            |inc esi                                 ;  Cruehead.<ModuleEntryPoint>
004013F3  |.^ EB ED         \jmp short Cruehead.004013E2
004013F5  |>  81F7 34120000 xor edi,0x1234
004013FB  |.  8BDF          mov ebx,edi                              ;  Cruehead.<ModuleEntryPoint>
004013FD  \.  C3            retn

分析程序的意图如下:

name = "FOYJOG"
value = 0
for i in name:value+=ord(i)
print hex(value^0x5678)  name2 = "A794"
value2 = 0
for i in name2:value2 = value2 * 0xA value2 += (ord(i)-0x30)
print value2
print hex(value2^0x1234)  print hex(0x57b6^0x1234)print chr(17+48),chr(7+48),chr(9+48),chr(4+48)

ok,只要慢慢分析,得到对称的name和serial。FOYJOG的结果如下:A794

034
这个程序需要分析一下:我们直接看代码:

00401016  |.  6A 00         push 0x0                                 ; /hTemplateFile = NULL
00401018  |.  68 80000000   push 0x80                                ; |Attributes = NORMAL
0040101D  |.  6A 03         push 0x3                                 ; |Mode = OPEN_EXISTING
0040101F  |.  6A 00         push 0x0                                 ; |pSecurity = NULL
00401021  |.  6A 03         push 0x3                                 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
00401023  |.  68 000000C0   push 0xC0000000                          ; |Access = GENERIC_READ|GENERIC_WRITE
00401028  |.  68 D7204000   push Cruehead.004020D7                   ; |FileName = "CRACKME3.KEY"
0040102D  |.  E8 76040000   call <jmp.&KERNEL32.CreateFileA>         ; \CreateFileA
00401032  |.  83F8 FF       cmp eax,-0x1
00401035  |.  75 0C         jnz short Cruehead.00401043
00401037  |>  68 0E214000   push Cruehead.0040210E                   ;  ASCII "CrackMe v3.0             "
0040103C  |.  E8 B4020000   call Cruehead.004012F5
00401041  |.  EB 6B         jmp short Cruehead.004010AE
00401043  |>  A3 F5204000   mov dword ptr ds:[0x4020F5],eax
00401048  |.  B8 12000000   mov eax,0x12
0040104D  |.  BB 08204000   mov ebx,Cruehead.00402008
00401052  |.  6A 00         push 0x0                                 ; /pOverlapped = NULL
00401054  |.  68 A0214000   push Cruehead.004021A0                   ; |pBytesRead = Cruehead.004021A0
00401059  |.  50            push eax                                 ; |BytesToRead = 6AA20276 (1789002358.)
0040105A  |.  53            push ebx                                 ; |Buffer = 00254000
0040105B  |.  FF35 F5204000 push dword ptr ds:[0x4020F5]             ; |hFile = NULL
00401061  |.  E8 30040000   call <jmp.&KERNEL32.ReadFile>            ; \ReadFile
00401066  |.  833D A0214000>cmp dword ptr ds:[0x4021A0],0x12
0040106D  |.^ 75 C8         jnz short Cruehead.00401037
0040106F  |.  68 08204000   push Cruehead.00402008
00401074  |.  E8 98020000   call Cruehead.00401311
00401079  |.  8135 F9204000>xor dword ptr ds:[0x4020F9],0x12345678
00401083  |.  83C4 04       add esp,0x4
00401086  |.  68 08204000   push Cruehead.00402008
0040108B  |.  E8 AC020000   call Cruehead.0040133C
00401090  |.  83C4 04       add esp,0x4
00401093  |.  3B05 F9204000 cmp eax,dword ptr ds:[0x4020F9]
00401099  |.  0f94c0        sete al
0040109C  |.  50            push eax
0040109D  |.  84C0          test al,al

哦,原来是写一个注册文件,然后进行注册,程序名字为CRACKME3.KEY,字符串长度要为0x12.
程序的算法在 call Cruehead.00401311中可以得到。

00401311  /$  33C9          xor ecx,ecx                              ;  Cruehead.<ModuleEntryPoint>
00401313  |.  33C0          xor eax,eax
00401315  |.  8B7424 04     mov esi,dword ptr ss:[esp+0x4]
00401319  |.  B3 41         mov bl,0x41
0040131B  |>  8A06          /mov al,byte ptr ds:[esi]
0040131D  |.  32C3          |xor al,bl
0040131F  |.  8806          |mov byte ptr ds:[esi],al
00401321  |.  46            |inc esi                                 ;  Cruehead.<ModuleEntryPoint>
00401322  |.  FEC3          |inc bl
00401324  |.  0105 F9204000 |add dword ptr ds:[0x4020F9],eax
0040132A  |.  3C 00         |cmp al,0x0
0040132C  |.  74 07         |je short Cruehead.00401335
0040132E  |.  FEC1          |inc cl
00401330  |.  80FB 4F       |cmp bl,0x4F
00401333  |.^ 75 E6         \jnz short Cruehead.0040131B

分析如下:

name="fuzhenzhenshishuaibi"
name2=""
bl = 0x41
result = 0
for i in name:if(bl==0x4f):breakresult += ord(i)^blname2 = name2 +chr(ord(i)^bl)bl += 1
print hex(result^0x12345678)
print chr(0x12),chr(0x34),chr(0x45),chr(0x0d)

打印出发现,额,打印不出来,所以我们借助一下python进行文件的特殊字符输入:

python -c "print 'fuzhenzhenshis'+chr(0x0d)+chr(0x54)+chr(0x34)+chr(0x12)+'bi'" > CRACKME3.KEY

额,完成

吾爱破解crackme 033 034相关推荐

  1. 吾爱破解crackme 065-070

    065: pe查看LCC win32,即没有加壳 od载入查看,分析关键点如下: 0040134F |. /EB 15 jmp short figugegl.00401366 00401351 |&g ...

  2. 【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )

    文章目录 一.吾爱破解专用版Ollydbg 二.运行 OD 工具 一.吾爱破解专用版Ollydbg 从 OD 官方网站 http://www.ollydbg.de/ 下载的 Ollydbg1.10 工 ...

  3. 吾爱破解 - https://www.52pojie.cn

    吾爱破解 - https://www.52pojie.cn martian6125

  4. 吾爱破解培训第一课作业密码_如何实现您的第一个无密码登录系统

    吾爱破解培训第一课作业密码 You may have heard that there are 360 Million Reasons to Destroy All Passwords and tha ...

  5. 吾爱破解 2023 春节解题领红包之 Web 题解

    (图作者 | 吾爱破解@Ps出来的小赵) 文章目录 题目简介 初级难度 flag1 flag2 flag3 flag4 flagA 中级难度 flag5 flag6 flag7 flag8 flagB ...

  6. 吾爱破解 - LCG - LSG|安卓破解|病毒分析|www.52pojie.cn

    吾爱破解 - LCG - LSG|安卓破解|病毒分析|www.52pojie.cn https://www.52pojie.cn/

  7. 【JS 逆向百例】吾爱破解2022春节解题领红包之番外篇 Web 中级题解

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 逆向目标 本次逆向的目标来源于吾爱破解 2022 春节解题领红包之番外篇 Web 中级题,吾爱破解每年都会有派送红包活动(送吾爱 ...

  8. B站微博吾爱破解知乎热榜软件

    简介: B站微博吾爱破解知乎热榜软件能够帮助用户获取各个网站的最新热门信息,让用户可以在B站.知乎.微博.贴吧等知名网络论坛或平台上,直接截取各种热点信息,热榜信息或者相关热点内容,通过其中的列表用户 ...

  9. 2014吾爱破解论坛精华贴

    吾爱破解论坛精华贴: http://www.52pojie.cn/thread-231684-1-1.html 配合买了两本安全方面的书: 1.android应用程序安全 2.ios应用逆向工程 3. ...

最新文章

  1. 中国电信天翼Live究竟胜算几何?
  2. opencv 4快速入门_基于OpenCV的图像融合
  3. tar打包时排除一些文件或者目录
  4. jpg无损压缩 java_使用FreeImage对JPEG进行无损优化
  5. 1.1.0-简介-P7-Raft、Zab
  6. PHP递归删除目录及目录下的文件
  7. WIFI加密技术介绍
  8. 服务器虚拟cpu,服务器虚拟化 vcpu与内存配比
  9. D. Graph and Queries (并查集+线段树)
  10. 从财报看纳德拉上任两年:云服务是最大的突破
  11. android即时通讯ui框架,android IM即时通信之聊天界面UI框架
  12. 益智java单词游戏_java实现单词搜索迷宫游戏
  13. 原生js生成渐变色数组集合
  14. mysql按时间段统计_mysql按照时间段内 每天统计
  15. NameError: name ‘_name_‘ is not define!解决方法
  16. Sql server找不到启动图标
  17. 2018北大暑校acm算法训练课程 海贼王之伟大航路 状压dp
  18. 【LeetCode】127. Word Ladder 解题报告(Python)
  19. 用PanDownload出现无法下载文件,资源分配失败
  20. 11个精美网页——Web前端开发技术课程大作业,期末考试,Dreamweaver简单网页制作

热门文章

  1. Redis重点六:怎么保证redis挂掉之后重启数据可以恢复?
  2. iOS设置Label上显示不同字体大小
  3. DAY 2 三级菜单
  4. unable to decode value
  5. 关于新版NZT7/8的安装方法和更新说明
  6. 软件测试实验五脚本扩展,软件测试实验五
  7. [Pytorch系列-33]:数据集 - torchvision与MNIST数据集
  8. 例4001 HTML解析
  9. 【原创】IP摄像头技术纵览—开篇
  10. 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系