2011-12-2 02:19
颖颖
Can you crack it?
[url]http://www.canyoucrackit.co.uk/[/url]
目的是要解密链接上的一段话,总体感觉很有挑战性。
12 月 11 日 23:00 之前解出的,有 1000 通宝的奖励喔
[color=Silver][[i] 本帖最后由 颖颖 于 2011-12-2 02:37 编辑 [/i]][/color]
2011-12-2 09:33
周瑜
∩
☺ôKiü8m'♥¢ⁿg\`µäá╘▲╩τ♦ÿRQu59║αδâì╜eptSf↑vO_Ha╔╧↨∙@Zx▼h♠4╢¿!┐∞┤╚~├ߣU╙.⌠éI└N╖,sΣΦ
æ¡[Pw| ¬c■▒▄≡Eè☼à°╛╪Ñ♣:╣╦⌡T-↔┼7%L█ù╫»AlÆDÄÖb►♀çM╠÷zπΘjn▓▬îÉ"^· ╗≈╤ë╥╓Çå)ò3┬Y╝ö
ïÅ#◄½↓╒↕Γ C╟ê┴═²y*ε▐qφ±ƒû≥Ω√┌;o▀G+>─F¶₧íX¼º⌂}2∟]/ñ‼╬⌐╨≤Vó╞=<Ür
[color=Silver][[i] 本帖最后由 周瑜 于 2011-12-1 17:41 编辑 [/i]][/color]
2011-12-2 09:35
ouyangnitian
回复 #2 周瑜 的帖子
公瑾V5,拿乱码来翻译密码!
问声公主,这个原理是什么?
2011-12-2 11:24
颖颖
回复 #2 周瑜 的帖子
你直接把 HEX 转成 ASCII 而已吧?:titter:
不过也不错,至少你知道出题的是在问什么了。本题的关键是找出一种算法,把以上的乱码变成一段文字。
回复 #3 ouyangnitian 的帖子
题目原理是这样的,电脑字符是靠 0-255 之间的某一个数字来表示,或者用 16 进制表示正好是一个两位数。一般所谓的加密系统,都是要对文字进行一个加密函数,一般所谓的解密就是找倒加密系统的逆函数。
比如说,最简单的加密系统之一就是 y = x+1 mod 256,这个系统把 ascii 的每个字符往后移一格。因此,"Hello World"被加密后将显示为“Ifmmp!Xpsme”。这个问题问的是,假设你看到了“Ifmmp!Xpsme”,你能否将原来的“Hello World”还原。
当然,本问题中的加密系统不会象 y = x+1 mod 256 那么简单了,一般比较常见的(简单)加密系统包括:y = a(x) = x+k mod 256, k = 1,2,...,255(要一个一个试);y = b(x) = kx mod 256,且 k 和 256 要互素,y = c(x) = x^k mod 256,也要求 k 和 256 互素,或者也有可能是 y = a, b, c 之间的某种函数叠加。
这些都是比较简单的加密方式,因为它们都是对单字符加密,不牵扯到字符间的 correlation。例如,如果“Hello World”加密成“Ifmmp!Xpsme”的话,“Hello World!”的结果就是“Ifmmp!Xpsme"”(! 加密后是" )。也就是说只要 input 相似,那么 output 也会相似,这样的加密系统只要密钥长期不变,都可以很容易被解开的。
如果遇到类似于 SHA-1 那样,后面的变一个字符可能连前面的东西也会因之改变。例如,
SHA1("The quick brown fox jumps over the lazy dog") = 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12
SHA1("The quick brown fox jumps over the lazy cog") = de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3
两句话变了一个字母,加密内容看似天壤之别。
不过网络命题肯定不会是这个难度的了,我估计用点加乘幂之类算法足以搞定。
[color=Silver][[i] 本帖最后由 颖颖 于 2011-12-2 13:33 编辑 [/i]][/color]
2011-12-2 12:20
第一深喉
无视主帖,只对2楼的发帖时间与编辑时间表示好奇。
2011-12-2 12:24
KYOKO
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Can you crack it?</title>
<meta name="description" content="">
<meta name="author" content="">
<link rel="stylesheet" href="css/styles.css"><link rel="stylesheet" href="css/countdown.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="js/jquery.countdown.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'en-GB'}
</script>
<script>
$(function () {
var austDay = new Date(2011, 11, 12, 0, 1, 0);
$('#defaultCountdown').countdown({until: austDay});
});
function SharePopup (c) {
window.open(c,'window', 'width=1000,height=375,scrollbars=yes,status=no,top=100,left=100');
}
</script>
</head>
<body>
<div class="container">
<div class="heading"><h1>_Can you crack it? </h1></div><div class="cleardivs"></div>
<div class="graphic"><img src="images/cyber.png" width="740" height="260" alt=""></div>
<div class="actions">
<div class="counter"><p>TIME REMAINING</p>
<div id="defaultCountdown"></div></div>
<div class="keyword">
<form name="form1" method="post" action="index.asp">
<label for="enter">Enter Keyword:</label> <input type="password" name="enter" id="enter" value="" size="16" />
<input type="submit" id="button" class="text" name="submitted" value="SUBMIT" />
</form></div><div class="cleardivs"></div>
<p style="text-align:center;">THE CHALLENGE CONTINUES</p>
</div></div>
<div class="footer">
<div class="social">
<a href="http://www.facebook.com/share.php?u=http://www.canyoucrackit.co.uk/" onclick="SharePopup(this.href); return false" target="_blank" class="facebook" title="Share this page on Facebook">
<img src="images/facebook.gif" width="33" height="33" alt="Facebook">
</a>
<a href="http://twitter.com/share?text=Can you crack the code?" onclick="SharePopup(this.href); return false" target="_blank" class="twitter" title="Share this page on Twitter">
<img src="images/twitter.gif" width="33" height="33" alt="Twitter">
</a>
<g:plusone annotation="none"></g:plusone>
</div>
<div class="cleardivs">
</div>
</div>
</body>
</html>
============================
tb拿来:hz1023:
2011-12-2 13:03
周瑜
我输出的可不是直接转换的ASCII字符,而是下面这段汇编执行完前两步之后堆栈内的值。后面带中断的递归实在是不知怎么弄了。
[font=Fixedsys]:00400000 EB04 jmp 00400006
:00400002 AF scasd
:00400003 C2BFA3 ret A3BF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400000(U)
|
:00400006 81EC00010000 sub esp, 00000100
:0040000C 31C9 xor ecx, ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400013(C)
|
:0040000E 880C0C mov byte ptr [esp+ecx], cl
:00400011 FEC1 inc cl
:00400013 75F9 jne 0040000E
:00400015 31C0 xor eax, eax
:00400017 BAEFBEADDE mov edx, DEADBEEF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400032(C)
|
:0040001C 02040C add al, byte ptr [esp+ecx]
:0040001F 00D0 add al, dl
:00400021 C1CA08 ror edx, 08
:00400024 8A1C0C mov bl, byte ptr [esp+ecx]
:00400027 8A3C04 mov bh, byte ptr [esp+eax]
:0040002A 881C04 mov byte ptr [esp+eax], bl
:0040002D 883C0C mov byte ptr [esp+ecx], bh
:00400030 FEC1 inc cl
:00400032 75E8 jne 0040001C
:00400034 E95C000000 jmp 00400095
* Referenced by a CALL at Address:
|:00400097
|
:00400039 89E3 mov ebx, esp
:0040003B 81C304000000 add ebx, 00000004
:00400041 5C pop esp
:00400042 58 pop eax
:00400043 3D41414141 cmp eax, 41414141
:00400048 7543 jne 0040008D
:0040004A 58 pop eax
:0040004B 3D42424242 cmp eax, 42424242
:00400050 753B jne 0040008D
:00400052 5A pop edx
:00400053 89D1 mov ecx, edx
:00400055 89E6 mov esi, esp
:00400057 89DF mov edi, ebx
:00400059 29CF sub edi, ecx
:0040005B F3 repz
:0040005C A4 movsb
:0040005D 89DE mov esi, ebx
:0040005F 89D1 mov ecx, edx
:00400061 89DF mov edi, ebx
:00400063 29CF sub edi, ecx
:00400065 31C0 xor eax, eax
:00400067 31DB xor ebx, ebx
:00400069 31D2 xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040008B(C)
|
:0040006B FEC0 inc al
:0040006D 021C06 add bl, byte ptr [esi+eax]
:00400070 8A1406 mov dl, byte ptr [esi+eax]
:00400073 8A341E mov dh, byte ptr [esi+ebx]
:00400076 883406 mov byte ptr [esi+eax], dh
:00400079 88141E mov byte ptr [esi+ebx], dl
:0040007C 00F2 add dl, dh
:0040007E 30F6 xor dh, dh
:00400080 8A1C16 mov bl, byte ptr [esi+edx]
:00400083 8A17 mov dl, byte ptr [edi]
:00400085 30DA xor dl, bl
:00400087 8817 mov byte ptr [edi], dl
:00400089 47 inc edi
:0040008A 49 dec ecx
:0040008B 75DE jne 0040006B
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00400048(C), :00400050(C)
|
:0040008D 31DB xor ebx, ebx
:0040008F 89D8 mov eax, ebx
:00400091 FEC0 inc al
:00400093 CD80 int 80
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400034(U)
|
:00400095 90 nop
:00400096 90 nop
:00400097 E89DFFFFFF call 00400039
:0040009C 41 inc ecx
:0040009D 41 inc ecx
:0040009E 41 inc ecx
:0040009F 41 inc ecx[/font]
2011-12-2 13:24
颖颖
回复 #7 周瑜 的帖子
不错不错,公斤加油~~~
2011-12-2 14:17
阿尔法孝直
:hz1011:看那个码8个一组,16个一行的,我的第一反应是MD5,谁知道竟然是机器码。。。。。。
2011-12-2 14:39
颖颖
回复 #9 阿尔法孝直 的帖子
这个我也不知道啊
2011-12-5 19:48
tomaswang
回复 #1 颖颖 的帖子
我花了三天两夜,破解出来了,过程太复杂了,等我把过程慢慢写出来。。。
里面有月薪三万英镑的工作机会,可惜哥在天朝,去不了啊
2011-12-6 00:25
颖颖
回复 #11 tomaswang 的帖子
何方神圣?:!*
2011-12-6 00:38
颖颖
回复 #11 tomaswang 的帖子
本来只认为是个好玩的 web quiz,没想到背后还有月薪 30000 英镑的工作?REALLY?!!!
2011-12-6 00:51
tomaswang
回复 #12 颖颖 的帖子
在 google 一搜 can you crack it, 就到了这里,注册了一个帐号就进来了:hz1026:
答案是方括号中的字符串【Pr0t3ct!on#cyber_security@12*12.2011+】
这题绝对不像表面上看到的那样简单,那些机器码能看明白,只是热热身而已,而且里面很多看起来没有用的数据,最后都变成关键的线索,这题出得真是太好了。。。
大致步骤是这样
1 将那些机器码做成 elf 文件,并用 objdump 和 gdb 分析,并看懂这段代码到底是做什么的
1.5 这时候会试各种 keyword,例如(BBBB, deadbeef) 但都不会成功,抓狂。。。到处找其他线索
2 找出隐藏在图片中的信息,那是一段 base64 编码,解码后会发现跟1中的代码匹配
3 合并 1和 2,会得到一个js文件地址,这个文件是第二道题
4 实现js中要求的功能(竟然是要实现一个简单虚拟机:qDD+),然后运行
5 运行结束后,在 mem中有另一个 exe文件的地址,分析这个 exe文件,完全看懂,这会花不少时间
6 根据 5分析的结果,建立 license.txt 文件,并且用 windbg手工跳过 crypt 校验部分
7 运行之后会出最后一个地址,但是这个地址生成,需要 stage1 和 stage2 的关键字
8 把各种可能的关键字集合到一起,生产一堆 url,然后一个一个去试
9 试到某一个,忽然就出来答案了,填到 KeyWord 里,竟然就成功了,当时都不敢相信啊:hz1020:
2011-12-6 00:58
tomaswang
回复 #14 tomaswang 的帖子
唉,为了这个破题,安装了一大堆工具软件,好像都中了病毒了。。。
2011-12-6 13:47
tomaswang
回复 #14 tomaswang 的帖子
刚刚将破解过程整理到 [url]http://hi.baidu.com/tomas_89/home[/url] 有兴趣的可以去看看
2011-12-6 14:04
feiyue1206
大神,容俺膜拜一下。。。
2011-12-6 14:14
ouyangnitian
牛人啊!真是服了。
2011-12-6 14:34
58642modemeng
额滴神啊
膜拜高人:hz1038:
2013-1-24 13:45
toushion
膜拜一下tomaswang.怎么16楼的链接删除了?谁有给发一个啊..
2013-1-24 13:55
颖颍
我了个擦,我那个主号怎么还没解冻啊?
2013-1-25 02:36
周瑜
限制发言用户
有效期至 2012-11-6
会不会登录一次就自动解冻了。
2013-1-29 17:28
司徒苍月
没有秘钥解base64加密么。。。。。。。。。。。。:hz1030:
自动登录解封,不过么,司徒家的,走后门好了:emot31:
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.