160 - 34 Cruehead.3
环境
windows xp sp3
工具
1.exeinfo pe
2.ollydbg
3.WinHex
查壳
和上一个一样,OD载入判断出
测试
运行后发现是没有任何提示,而且没有输入serial的窗口,通过任务管理器可以看出程序的名称写有“Uncracked”,可以猜测是keyfile了。
也可以通过OD载入后观察出来:
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 XCruehead.00401043
00401037 |> 68 0E214000 push Cruehead.0040210E ; ASCII "CrackMe v3.0 "
0040103C |. E8 B4020000 call Cruehead.004012F5
00401041 |. EB 6B jmp XCruehead.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 => 12 (18.)
0040105A |. 53 push ebx ; |Buffer => Cruehead.00402008
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 ; 这里是确认keyfile是否存在0x12个字符
0040106D |.^ 75 C8 jnz XCruehead.00401037
0040106F |. 68 08204000 push Cruehead.00402008
00401074 |. E8 98020000 call Cruehead.00401311 ; 将前14个字符进行计算,结果保存在[0x4020F9]中
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 ; 这里是取keyfile中后4个字符
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
0040109F |.^ 74 96 je XCruehead.00401037
可以在[00401028]处得知要的keyfile名称。接下来就是读取keyfile文件内是否存在18个字符(0x12)。不存在就跳转。
00401311 /$ 33C9 xor ecx,ecx
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 ; 这里将会改变从keyfile中读取到的值,并将这个值显示为Cracker名
00401321 |. 46 |inc esi
00401322 |. FEC3 |inc bl
00401324 |. 0105 F9204000 |add dword ptr ds:[0x4020F9],eax
0040132A |. 3C 00 |cmp al,0x0
0040132C |. 74 07 |je XCruehead.00401335
0040132E |. FEC1 |inc cl
00401330 |. 80FB 4F |cmp bl,0x4F
00401333 |.^ 75 E6 \jnz XCruehead.0040131B
00401335 |> 890D 49214000 mov dword ptr ds:[0x402149],ecx
0040133B \. C3 retn
读取前14个字符的内容,并且对bl的值进行异或,异或后的结果保存回对应的位置,用来作为Cracker的name
前14个字符加起来的值之和会与0x12345678异或,异或后的结果将于剩下的4个字符比较是否相等,相等就显示正确的对话框。
要用16进制编辑器编辑!
keyfile:CRACKME3.KEY的内容:
20 20 20 20 20 20 20 20 20 20 20 20 20 20 D1 53 34 12
160 - 34 Cruehead.3相关推荐
- 160 - 33 Cruehead.1
环境 windows xp sp3 工具 exeinfo pe ollydbg 查壳 无壳的汇编程序(OD载入的出来的) 测试 当name输入为数字时,会弹出两次错误框. OD载入搜字符串,发现有两个 ...
- 莫名其妙的主机名 VM_32_234_centos
在腾讯服务器上部署的时候出现的莫名其妙的错误, 我在配置文件上都写 master, node1, 但是运行mapredure的时候的时候老是出现 Job job_1409546978133_0001 ...
- sphinx php mysql_Sphinx+MySQL+PHP 12亿DNS数据秒查
最近得到一个接近12亿的全球ns节点的数据,本来想用来做一个全国通过dns反查域名然后进行全国范围的网站收集和扫描的,后来发现网站的数量不是很准确,加上一个人的精力和财力实在难以完成这样一个庞大的任务 ...
- Mysql对应的dul_Dul基本使用
这几天朋友问我dul怎么用,抽时间给他做了个实验.其实网上已经有很多dul的使用方法,而且我也不推荐使用dul.odu这样的工具去恢复数据,这是体力活的. 而且现在最新版都是时间限制,好像是40多天, ...
- jarvis oj Web By Assassin
LOCALHOST 套路题,构造headers中加上x-forwarded-for=127.0.0.1即可 PCTF{X_F0rw4rd_F0R_is_not_s3cuRe} PORT51 访问了页面 ...
- jarvis oj(web wp)
api调用 这题是slim架构的xxe漏洞,看博客做题2333 https://www.leavesongs.com/PENETRATION/slim3-xxe.html simple injecti ...
- 国内ip地址 透明代理
IP地址 模式 类型 查询 地区 更新时间 115.238.169.174:3128 Http 透明 whois 中国 2013-1-19 115.239.234.44:1080 Http 透明 wh ...
- jarvis oj Web By Assassin
LOCALHOST 套路题,构造headers中加上x-forwarded-for=127.0.0.1即可 PCTF{X_F0rw4rd_F0R_is_not_s3cuRe} 1 PORT51 访问了 ...
- Jarvis OJ web WriteUp
我要开始做Jarvis OJ上的题目啦!!!之前bugku上还剩下的几道题,之后也会再补上的,做出来之后,就会把思路写到博客里的.新手,有错的地方多多指教.(不是按顺序写的-我就先挑简单的做啦~~~) ...
最新文章
- 如果让你拥有100万粉丝,你会做什么
- VirtualCopy in WinCE6.0
- python两个切片合并_Python中numpy的布尔判断、合并、切片及一般函数,通用
- java htmlparser 使用教程_HtmlParser基础教程
- load dll failed java_【软件安装故障排除】安装完PyCharm,启动时弹出Failed to load JVM DLL\bin\server\jvm.dll解决方案...
- URL地址 长度超出限制问题解决
- matlab 误差修正模型,求问大神用R做VEC(误差修正)模型的程序包或者代码是什么啊?...
- 废粉盒在哪里_复印机提示“废粉盒满”“请及时更换废粉盒”
- 能连蓝牙键盘吗_300多的小键盘,颜值很能打,GANSS ALT71蓝牙双模机械键盘很香...
- 即兴演讲、怎么锻炼即兴演讲能力、一些即兴演讲的模板
- 【读书笔记】金字塔原理-构建金字塔的序言
- SpringBoot——自学笔记
- html5 在线设计,推荐十款非常优秀的 HTML5 在线设计工具
- 盘古石考核取证复现检材1(??)
- 输入年龄,判断年龄阶段
- TP5生成二维码教程
- 【数仓设计】宽表和窄表
- 【运维】- raid管理工具MegaCli以及storcli使用介绍
- 如何快速解决Github下载源码编译报错并顺利运行机器人等项目案例(Webots+ROS2)
- 武汉科技大学计算机专业强不强,武汉科技大学与湖北大学哪个实力更强?网友:没有可比性...
热门文章
- JSFinder—从js文件中寻找敏感接口和子域名
- JSP 插入到数据库的数据出现 “SQLServerException: 将截断字符串或二进制数据” 错误解决方案
- 数据可视化的基本原理——视觉通道
- [CSS] Scale on Hover with Transition
- 从一个帖子看 所谓“知乎” 的真实水平
- TMS320F28335——IO控制/定时计操作
- min-width:100%和max-width:100%的区别
- 01 辅助函数之加密函数
- 小程序如何传数组数据到vs后台中
- CF1080F Katya and Segments Sets