标题:
◥◣黑客游戏你能过几关◢◤
[打印本页]
作者:
孤舟独帆
时间:
2005-7-7 09:58
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由孤舟独帆在 2005/07/07 12:13pm 第 1 次编辑]
http://hackgame.cnxhacker.net/startgame.asp
游戏包含当前一些常见的网页破解,程序编写和破解!
作者:
ouli
时间:
2005-7-7 10:53
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由ouli在 2005/07/07 11:12am 第 2 次编辑]
var x=document.password.pass.value
if (x=="go") {
alert("恭喜您,答对了,进入第二关!")
window.open("thetwo.asp","_self") }
密码没找出
但是找到了第二关连接地址
就这个~~thetwo.asp
密码 难不成是?这个if (x=="go")?
可填GO没用`````
作者:
ouli
时间:
2005-7-7 10:55
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由ouli在 2005/07/07 11:02am 第 1 次编辑]
靠,第二关卡住了````
谁来指点下我过~~~~
加密过的```用什么解密 ???
作者:
孤舟独帆
时间:
2005-7-7 10:59
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由孤舟独帆在 2005/07/07 03:56pm 第 2 次编辑]
:em13:
作者:
ouli
时间:
2005-7-7 11:08
标题:
◥◣黑客游戏你能过几关◢◤
第二关 老样子
只是 加密过 了
var x=document.password.pass.value
if (x=="miao") {
window.open("gotothree.asp","_self") }
else {
window.open("error.asp","_self") }
这是还原得出的~~
好像是用某个语句加密的吧?我找书看看是不是~
作者:
ouli
时间:
2005-7-7 11:16
标题:
◥◣黑客游戏你能过几关◢◤
第三关过不了了~~~````
太菜了~~~~看不出什么
作者:
风幻残林
时间:
2005-7-7 11:42
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由风幻残林在 2005/07/07 12:02pm 第 1 次编辑] 第一关应该看如下代码 仔细看看 x 的赋值为“go ”三个字符 而不是单纯的“go”两个字符 然后输入“go ” 点确定 ok 恭喜您,答对了,进入第二关!
作者:
ouli
时间:
2005-7-7 11:46
标题:
◥◣黑客游戏你能过几关◢◤
go后面是有一个空格```
可go+一个空格不成````
郁闷,我想不通哦```
作者:
风幻残林
时间:
2005-7-7 12:00
标题:
◥◣黑客游戏你能过几关◢◤
你要通过复制该网页的源代码里面的那句go命令才行
我试过了才发出来的
当然我也顺利的进入了第二关
作者:
风幻残林
时间:
2005-7-7 12:08
标题:
◥◣黑客游戏你能过几关◢◤
进入第二关后
查看源代码
可以看出整个脚本是通过javascript转换为...的代码(嘿嘿,我不是很懂这方面)
在一整串的非代码里面可以找到window.open以及gotothree.asp的语句
哈哈
预判断这就是跳转到第三关的代码“gotothree.asp”执行语句
然后再往前面仔细看
有一个“miao”以及Ddocument.password.pass.value
ok 不难看出这就是通过第二关的口令
输入“miao” 哈哈 pass!!!
作者:
风幻残林
时间:
2005-7-7 12:25
标题:
◥◣黑客游戏你能过几关◢◤
第三关 嘿嘿 其实这关是一个相当简单的游戏 可能很大一部分在前两关中在页面无法右键弹出菜单 所以都是通过浏览器中的“查看”->“查看源代码”来实现查看该网页的源代码 呵呵 这次就不同了 我们可以右击图片里面的空白处 哈哈 你看到了什么 对 就是右键菜单 然后点击查看源代码 ok 源代码出现了什么 呵呵 就是下面的代码 看到了吧 跳转到第四关的代码就在里面 『
这些文字你能看懂吗?
Miao
二○○三年十一月十二日
哈哈在此:
forth.asp
』 我们在url中输入http://hackgame.cnxhacker.net/forth.asp顺利进入下一关 进去一看 我倒....
作者:
天空飞人
时间:
2005-7-7 12:32
标题:
◥◣黑客游戏你能过几关◢◤
第三个不知道哪里入手
作者:
风幻残林
时间:
2005-7-7 12:41
标题:
◥◣黑客游戏你能过几关◢◤
呵呵
看到刚才那个页面后不要灰心
然后通过查看源代码
会发现设计者很狡猾
把跳转到第四关的代码写在了最右下角
稍不注意是不会发现的
^_^ ok 我们找到了进入第四关的执行代码theforthin.asp
在url中输入http://hackgame.cnxhacker.net/theforthin.asp进入下一关
作者:
风幻残林
时间:
2005-7-7 12:58
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由风幻残林在 2005/07/07 01:31pm 第 1 次编辑]
进入第四关中我们会发现该页面首先会要求输入用户名和密码
可是我们手头上无任何资料当然也无法通过菜单来查看源代码
那么我们用下载工具把该页面载到自己的机器上
通过frontpage或者dreamweaver等网页制作工具来查看源代码
之后我们不难发现里面会有4个帐号和密码
他们是一一对应的,不能随便搭配
然后我们通过该帐号和密码进入了第五关的页面4.14159265358979323846264.asp
哈哈 进入http://hackgame.cnxhacker.net/4.14159265358979323846264.asp会发现还是原来第四关
不急,这是一个骗局...
我们再通过下载工具把http://hackgame.cnxhacker.net/4.14159265358979323846264.asp这个页面下载到自己的机器上
然后查看代码会发现里面的内容更最开始的有点不一样
哈哈 发现了吧 进入第五关的页面居然是5.asp.asp 好夸张的文件名...
然后通过url进入第五关
我对这关唯一的缺陷就是无法进入正确的页面输入密码而跳转到第五关
希望高手们有更好的方法指定在下... 谢谢 ^_^
作者:
孤舟独帆
时间:
2005-7-7 13:23
标题:
◥◣黑客游戏你能过几关◢◤
if (htm=="miao is good!") {
window.open("4.14159265358979323846264.asp","_self") }
这里面的好象没有一个语句是正确的跳转的 郁闷
作者:
风幻残林
时间:
2005-7-7 13:33
标题:
◥◣黑客游戏你能过几关◢◤
呵呵 楼上这句4.14159265358979323846264.asp其实也是一个骗局
不过这个页面存在有正确的跳转地址...
作者:
皮蛋瘦肉
时间:
2005-7-7 13:58
标题:
◥◣黑客游戏你能过几关◢◤
这里云门了我好常识件
作者:
风幻残林
时间:
2005-7-7 14:01
标题:
◥◣黑客游戏你能过几关◢◤
哈哈
郁闷是常有的事
我现在被第五关困住了...
作者:
孤舟独帆
时间:
2005-7-7 14:51
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由孤舟独帆在 2005/07/08 08:09am 第 3 次编辑]
跳转到theforthin.asp进入第4关 但这里只停留1秒 就跳转成“错误,重新开始”
解决方法是:进入页面的时候按一下停止,快捷键Esc 就OK了
然后在源代码中找到PS 输入进入第5关 5进6关郁闷中
作者:
风幻残林
时间:
2005-7-7 16:04
标题:
◥◣黑客游戏你能过几关◢◤
哈哈 第五关终于破解了
问题就是出在那张图片上
我们先把图片载下来
通过查看源代码知道图片跟文件保存在同一文件夹下660066.jpg呵呵 载下来
用UltraEdit或者其他的查看器来看其图片内容
你会发现里面有句\xs0 \xi0 \xx0 \xt0 \xo0 \xs0 \xi0 \xx0"+".asp
呵呵 发挥你的想象 sixtosix.asp 出来了
pass!
作者:
漫天樱舞
时间:
2005-7-7 16:09
标题:
◥◣黑客游戏你能过几关◢◤
我已经到了第七关
可你那个樱花图片从头到尾也没看到过啊
作者:
风幻残林
时间:
2005-7-7 16:15
标题:
◥◣黑客游戏你能过几关◢◤
呀 漫天樱舞姐姐好厉害啊
教教我哦
^_^
作者:
漫天樱舞
时间:
2005-7-7 16:29
标题:
◥◣黑客游戏你能过几关◢◤
第七关入口为一道题:
要求完成下面的表达式
a b c d e
+2 0 0 8 5
------------
f g h i j
其中2008表示2008年在北京举办奥运会,
5表示奥运五环,所以合起来20085刚好表示2008奥运。
要求abcdefghij分别表示从0到9的一位数字,而且不允许重复使得上面的加法表达式成立.
最后将所有满足条件的j从小到大连在一起就是第七关的地址了!不过还要在地址前加上lev7
作者:
漫天樱舞
时间:
2005-7-7 16:36
标题:
◥◣黑客游戏你能过几关◢◤
20085
+27951
-------
48036
作者:
漫天樱舞
时间:
2005-7-7 16:40
标题:
◥◣黑客游戏你能过几关◢◤
20085
+14982
——--
35067
作者:
漫天樱舞
时间:
2005-7-7 16:43
标题:
◥◣黑客游戏你能过几关◢◤
20085
+51963
-------
72048
作者:
风幻残林
时间:
2005-7-7 16:56
标题:
◥◣黑客游戏你能过几关◢◤
[这个贴子最后由风幻残林在 2005/07/07 04:57pm 第 1 次编辑]
我用UE看鹦鹉居然是乱码...
好郁闷 -_-!!!
十六进制转换不来...
作者:
漫天樱舞
时间:
2005-7-7 17:01
标题:
◥◣黑客游戏你能过几关◢◤
里面有个图标文件ico
你下载下来打开就看到了
作者:
风幻残林
时间:
2005-7-7 17:06
标题:
◥◣黑客游戏你能过几关◢◤
我知道呀
我是说我把鹦鹉的图标下载下来通过UE查看
得到的结果是乱码..
而并不是你所看到的文字...
用winhex也是一样..
郁闷啊我...
作者:
风幻残林
时间:
2005-7-7 17:33
标题:
◥◣黑客游戏你能过几关◢◤
第六关通过算法计算出来的值有667788
因此再加上题目所说的lev7刚好是进入第七关的文件名
http://hackgame.cnxhacker.net/lev7667788.asp
作者:
我是杀手
时间:
2005-7-7 17:35
标题:
◥◣黑客游戏你能过几关◢◤
作者:
狰狞的怪
时间:
2005-7-7 17:38
标题:
◥◣黑客游戏你能过几关◢◤
我过了几关有点想说的
有时候你不用管他的密码是多少,源码里直接有地址,输入到地址栏打开就可以了。
有时候被弹出的窗口屏蔽了别的东西,可以把窗口关了,然后用view-source:来看源码。
作者:
漫天樱舞
时间:
2005-7-7 17:39
标题:
◥◣黑客游戏你能过几关◢◤
呵呵
后面是java的
作者:
漫天樱舞
时间:
2005-7-7 17:50
标题:
◥◣黑客游戏你能过几关◢◤
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html // Decompiler options: packimports(3) fieldsfirst ansi // Source File Name: islogin.java import java.applet.Applet; import java.applet.AppletContext; import java.awt.*; import java.net.MalformedURLException; import java.net.URL; import java.util.Hashtable; public class islogin extends Applet implements LayoutManager { boolean erroras; private String fechable; Color colorT; String t1; String t2; String t3; String iLink; String iFrame; Integer coloras2; Color backgroundas; private String status; private Integer userCount; private String cLink; private String cFrame; private String name[]; private String password[]; private String link[]; private String frame[]; Container m_Parent; boolean m_fInitialized; protected Hashtable m_map; protected int m_width; protected int m_height; Button Btn1; TextField Txt1; TextField Txt2; Label Lbl1; Label Lbl2; public Dimension minimumLayoutSize(Container container) { return new Dimension(m_width, m_height); } private String decodeString(String s) { int i = 0; int j = 0; char ac[] = new char[s.length()]; for(; i < s.length(); i++) if(s.charAt(i) == ';#';) { if(s.charAt(i + 1) == ';#';) { ac[j] = ';#';; j++; i++; } else if(s.charAt(i + 1) == ';s';) { ac[j] = '; ';; j++; i++; } else if(s.charAt(i + 1) == ';a';) { ac[j] = ';&';; j++; i++; } else if(s.charAt(i + 1) == ';l';) { ac[j] = ';<';; j++; i++; } else if(s.charAt(i + 1) == ';q';) { ac[j] = ';"';; j++; i++; } else if(s.charAt(i + 1) == ';g';) { ac[j] = ';>';; j++; i++; } else if(s.charAt(i + 1) == ';u';) { ac[j] = ';\177';; j++; i++; } else { erroras = true; } } else { ac[j] = s.charAt(i); j++; } s = new String(ac); return lockKey(s, new String("Default user name")); } public boolean CreateControls() { if(m_fInitialized || m_Parent == null) return false; if(!(m_Parent instanceof Container)) return false; Font font = m_Parent.getFont(); if(font != null) { Font font1 = new Font("SansSerif", font.getStyle(), 11); m_Parent.setFont(font1); } Construct(m_Parent, 186, 69); m_Parent.setLayout(this); m_Parent.addNotify(); Dimension dimension = getDialogSize(); Insets insets = m_Parent.insets(); m_Parent.resize(insets.left + dimension.width + insets.right, insets.top + dimension.height + insets.bottom); if(status.compareTo(new String("P")) != 0 && status.compareTo(new String("L")) != 0) Btn1 = new Button(t3 + "-UNREGISTERED applet"); else Btn1 = new Button(t3); m_Parent.add(Btn1); setShape(Btn1, 5, 44, 177, 14); Txt1 = new TextField(""); Txt1.setForeground(Color.blue); Txt1.setBackground(Color.white); m_Parent.add(Txt1); setShape(Txt1, 99, 7, 75, 14); Txt2 = new TextField(""); Txt2.setForeground(Color.blue); Txt2.setEchoCharacter(';*';); Txt2.setBackground(Color.white); m_Parent.add(Txt2); setShape(Txt2, 99, 23, 75, 14); setBackground(backgroundas); Lbl1 = new Label(t1, 2); Lbl1.setForeground(colorT); Lbl1.setBackground(backgroundas); m_Parent.add(Lbl1); setShape(Lbl1, 2, 9, 95, 8); setBackground(backgroundas); Lbl2 = new Label(t2, 2); Lbl2.setForeground(colorT); Lbl2.setBackground(backgroundas); m_Parent.add(Lbl2); setShape(Lbl2, 2, 26, 95, 8); m_fInitialized = true; return true; } public void setShape(Component component, int i, int j, int k, int l) { m_map.put(component, new Rectangle(i, j, k, l)); } private String lockKey(String s, String s1) { char ac[] = new char[s.length()]; ac = s.toCharArray(); int j = 0; for(int i = 0; i < s.length(); i++) { char c = s1.charAt(j); c >>= ';\003';; ac
= (char)(ac
^ c); if(j < s1.length() - 1) j++; else j = 0; } return new String(ac); } public void setShape(Component component, Rectangle rectangle) { m_map.put(component, new Rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height)); } public Rectangle getShape(Component component) { Rectangle rectangle = (Rectangle)m_map.get(component); return new Rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height); } public Dimension getDialogSize() { return new Dimension(m_width, m_height); } public void removeLayoutComponent(Component component) { } protected void mapRectangle(Rectangle rectangle, int i, int j) { rectangle.x = (rectangle.x * i) / 4; rectangle.y = (rectangle.y * j) / 8; rectangle.width = (rectangle.width * i) / 4; rectangle.height = (rectangle.height * j) / 8; } public String getAppletInfo() { return new String("Applet Web Password - calss file version 2.21, by Innovative Solutions 1999 http://software.ktc.lt, applet author Tomas Liubinas tomas.liubinas@energija.lt. Author speaks: I think you are too damn currious if you can read this."); } public Dimension preferredLayoutSize(Container container) { return new Dimension(m_width, m_height); } public boolean action(Event event, Object obj) { int i = 0; if((event.target instanceof Button) || (event.target instanceof TextField)) { boolean flag = false; for(int j = 0; j < userCount.intValue(); j++) if(name[j].toUpperCase().compareTo(Txt1.getText().toUpperCase()) == 0 && password[j].compareTo(Txt2.getText()) == 0) { flag = true; i = j; } if(!flag) try { if(iLink.compareTo("") != 0) if(iFrame.compareTo("") == 0) getAppletContext().showDocument(new URL(getDocumentBase(), iLink)); else getAppletContext().showDocument(new URL(getDocumentBase(), iLink), iFrame); } catch(MalformedURLException _ex) { } else try { if(frame
.compareTo("") == 0) getAppletContext().showDocument(new URL(getDocumentBase(), link
)); else getAppletContext().showDocument(new URL(getDocumentBase(), link
), frame
); } catch(MalformedURLException _ex) { } } Txt1.setText(new String("*")); Txt2.setText(new String("*")); Txt1.setText(new String("")); Txt2.setText(new String("")); return true; } public void layoutContainer(Container container) { int i = container.countComponents(); Rectangle rectangle = new Rectangle(); int j = getCharHeight(container); int k = getCharWidth(container); Insets insets = container.insets(); for(int l = 0; l < i; l++) { Component component = container.getComponent(l); Rectangle rectangle1 = (Rectangle)m_map.get(component); if(rectangle1 != null) { rectangle.x = rectangle1.x; rectangle.y = rectangle1.y; rectangle.height = rectangle1.height; rectangle.width = rectangle1.width; mapRectangle(rectangle, k, j); if(component instanceof Label) { rectangle.x -= 12; rectangle.width += 12; } rectangle.x += insets.left; rectangle.y += insets.top; component.reshape(rectangle.x, rectangle.y, rectangle.width, rectangle.height); } } } public String fetchFirst() { if(fechable.charAt(0) == ';|';) fechable = new String(fechable.substring(1)); String s = new String(fechable.substring(0, fechable.indexOf(124))); fechable = new String(fechable.substring(fechable.indexOf(124))); return s; } protected int getCharHeight(Container container) { FontMetrics fontmetrics = container.getFontMetrics(container.getFont()); int i = fontmetrics.getHeight(); return i; } public void addLayoutComponent(String s, Component component) { } public void init() { resize(280, 110); setLayout(new FlowLayout(0)); boolean flag = true; try { getParameter("checkpoint"); } catch(Exception _ex) { } String s = new String(); try { String s1 = new String(getParameter("checkpoint")); fechable = new String(getParameter("general")); coloras2 = new Integer(fetchFirst()); Integer integer = new Integer(fetchFirst()); colorT = new Color(integer.intValue()); t1 = new String(fetchFirst()); t2 = new String(fetchFirst()); t3 = new String(fetchFirst()); iLink = new String(fetchFirst()); iFrame = new String(fetchFirst()); Integer integer1 = new Integer(s1.toString()); String s2 = new String(); for(int i = 1; i <= integer1.intValue(); i++) { String s5 = new String(Integer.toString(i)); String s7 = new String(getParameter("user" + s5)); s2 = new String(s2 + s7); } fechable = new String(decodeString(s2)); fetchFirst(); for(; fechable.charAt(0) == ';|';; fechable = new String(fechable.substring(1))); fetchFirst(); status = new String(fetchFirst()); if(status.compareTo(new String("L")) != 0 && status.compareTo(new String("P")) != 0) { String s3 = new String(getParameter("generator")); if(s3.compareTo(new String("Applet Web Password 2 - UNREGISTERED, http://software.ktc.lt")) != 0) flag = false; } if(status.compareTo(new String("L")) == 0) { String s4 = new String(getParameter("generator")); if(s4.compareTo(new String("Applet Web Password 2, http://software.ktc.lt")) != 0) flag = false; } userCount = new Integer(fetchFirst()); cLink = new String(fetchFirst()); cFrame = new String(fetchFirst()); name = new String[userCount.intValue()]; password = new String[userCount.intValue()]; link = new String[userCount.intValue()]; frame = new String[userCount.intValue()]; for(int j = 0; j < userCount.intValue(); j++) { name[j] = fetchFirst(); password[j] = fetchFirst(); String s6 = fetchFirst(); char ac[] = new char[10]; ac = s6.toCharArray(); if(ac[0] == ';d';) { link[j] = new String(cLink); frame[j] = new String(cFrame); } else { link[j] = new String(fetchFirst()); frame[j] = new String(fetchFirst()); } } } catch(Exception exception) { setForeground(Color.red); setBackground(new Color(0xffffdd)); flag = false; s = new String(exception.getMessage()); } if(flag) { backgroundas = new Color(coloras2.intValue()); setBackground(new Color(coloras2.intValue())); m_Parent = this; CreateControls(); return; } else { setBackground(Color.white); setForeground(Color.red); add(new Label("Applet loading error")); add(new Label(s)); return; } } public islogin() { fechable = new String(); status = new String("D"); m_map = new Hashtable(); } protected int getCharWidth(Container container) { FontMetrics fontmetrics = container.getFontMetrics(container.getFont()); String s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; int i = fontmetrics.stringWidth(s) / s.length(); if(i <= 0) i = 1; return i; } protected void Construct(Container container, int i, int j) { Rectangle rectangle = new Rectangle(0, 0, i, j); mapRectangle(rectangle, getCharWidth(container), getCharHeight(container)); m_width = rectangle.width; m_height = rectangle.height; } }
作者:
我是杀手
时间:
2005-7-7 17:56
标题:
◥◣黑客游戏你能过几关◢◤
http://hackgame.cnxhacker.net/islogin.class?? 搞不明白了
作者:
漫天樱舞
时间:
2005-7-7 18:01
标题:
◥◣黑客游戏你能过几关◢◤
下载下来反编译看上面我发的那段代码
答案应该在里面
作者:
漫天樱舞
时间:
2005-7-7 18:22
标题:
◥◣黑客游戏你能过几关◢◤
1)用软件把islogin.class下和lev7667788.asp下来放在同一个目录。
2)用类反编译软件反编成islogin.java,
3)更改islogin.java里面的代码并在最后加上
public void paint(Graphics g )
{
g.drawString(link[0],5,35);
}
进入islogin.java的目录,输入javac islogin.java重新生成islogin.class
输入appletviewer lev7667788.asp就出弹出一个java窗口,并在里面显示htm,把htm改成asp到第八关
作者:
爱在夕阳间
时间:
2005-7-8 05:47
标题:
◥◣黑客游戏你能过几关◢◤
漫天樱舞 好拽啊!
作者:
爱在夕阳间
时间:
2005-7-8 07:00
标题:
◥◣黑客游戏你能过几关◢◤
.class是字节码文件,你不能直接使用EditPlus观看,需要将其反编译为.java文件才行。不过.class是比较容易被反编译的,Mocha是第一个反编译软件,你可以在
http://www.brouhaha.com/~eric/computers/mocha.html
了解这个反编译软件的情况。还有很多类似的软件,Java SDK 1.1中也包括了一个反编译软件javap。当然有反编译的,就有对付反编译的办法。在刚才这个站点上你还可以了解一些对付反编译的工具。下面这篇文章更详细地介绍了这方面的情况:
http://www.cs.arizona.edu/~collberg/Research/Students/DouglasLow/obfuscation.html
作者:
皮蛋瘦肉
时间:
2005-7-8 08:26
标题:
◥◣黑客游戏你能过几关◢◤
厉害
我要学习的东西还很多!!!
作者:
bigblock
时间:
2005-7-8 21:32
标题:
◥◣黑客游戏你能过几关◢◤
呵呵
通了
比较无聊
都是一个样子
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2