ở hn thì học tin học chỗ nào tốt vậy?

lv 8 lên lv 9: vì khi gõ xxx vào nó sẽ ra trang http://www.academy.dyndns.org/hackit8/xxx.htm vậy nên http://www.academy.dyndns.org/hackit8 sẽ hiện ra list các trang trong đường dẫn này. trong đó có file login.htm ==> pass login

lv9 lên 10: View source của cái này rồi Find and replace tất cả các đoạn <font color="#000000"> và </font> bằng "" => có dòng chữ. Đọc là qua được
Thôi chuồn, mệt quá. Cái này chỉ để chơi thôi.
Có cái 12 không ??? Cái này qua lâu rồi
 
Từ 11 lên 12:
http://academy.dyndns.org/onze.htm
Sau khi vào trang này và view source. Thấy 1 đống js cũng hơi choáng nhưng thấy dòng window.location="next.htm"; done=1; nên nhẩy luôn sang http://academy.dyndns.org/next.htm nhưng sang trang này nó lại bắt mình nhập lại như những gì mình nhập ở trang onze từ đó dựa vào giá trị mình nhập vào == trang mình cần đến thế nên lại phải quay lại. trang onze để tìm pass.
đoạn sau là đoạn check pass:
Mã:
function Login(){
var done=0;
var a1="%77%68%65%72%65";
var a=document.login.a.value;
a=a.toLowerCase();
var b=document.login.b.value;
b=b.toLowerCase();
var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2); 
var c1="%61%6E%64";
var c=document.login.c.value;
c=c.toLowerCase();
var d1= new Array("q", "t", "1", "@", "e", "c", "67", ".", "k", "#", "u", "a", "12", "k", "p", "t", "ß", "e", "&", "§", "f", "z", "s", "d", "6", "k") ;
var d=document.login.d.value;
d=d.toLowerCase();
var e=document.login.e.value;
e=e.toLowerCase();
var f = e.substring(1,2) + e.substring (4,5)+ e.substring (6,7) + e.substring (0,1) + e.substring(5,6)+ e.substring(2,3) + e.substring(3,4);
if (a== unescape(a1) && b1=="metim" && c== unescape(c1) && d== d1[22] + d1[14] + d1[11] + d1[5] + d1[17] && f=="e..m.et" ) {
window.location="next.htm"; done=1;
}
if (done==0) { alert("ACCESS DENIED"); 

}
}
Đoạn này mà ngồi tính thì chắc đến hết cả ngày mất. Cách tốt nhất là viết 1 chương trình để check. a== unescape(a1) đó chính là chuỗi cần nhập vào đầu tiên. a1 = %77%68%65%72%65. Cái này chắc khỏi phải nói. Đáng nhẽ đúng ra phải viết chương trình tính bằng js nhưng tôi chẳng học js mấy chỉ đủ để đọc hiểu thôi. nên viết bằng java dùng URLdecode để unescape a1 và được a (code1). where
Sang đến b1=="metim". xem lại đoạn var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2); ==> b.substr(2,3) = me, b.substr(0,1) = t, b.substr(1,2) = i. Vậy b = time
Tương tự var c = unescape("%61%6E%64"); = and
value d thì quá dễ. Lấy các ký tự d1[22] + d1[14] + d1[11] + d1[5] + d1[17]
tương ứng của array đã khai báo. d= meet...
Sau đó sang trang next.htm thì làm như nó bảo là qua.
Recommend: Thay vì ngồi tính thì nên viết 1 cái chương trình nhỏ để tính thì hơn. :whew:
 
[Tantalus]L7 nói:
Tui nói là 12 qua 13 cơ , nhầm rồi .
Cái từ 12 lên 13 hơi suck 1 chút. Phải thử đi thử lại bao nhiêu lần mới trúng.
Mã:
...
mul=mul*number              
...
if (digit==4)               
      {
        if                                                                           (mul==12)                                                                       
        {
            location=code+".htm"
          
          
        }
Cái đoạn mul ==12 đó. Có nghĩa là 4 số mình nhập vào nhân hết vào với nhau phải là 12. tổ hợp lại được 2 bộ số thỏa mãn là 1162 và 3411. Cứ thử 1612, 2611,1162... mỗi lần làm thế lại ra một trang nó bảo là wrong id nhưng đi đúng hướng rồi đấy thế là cứ thử cuối cùng là 2161 là số đúng.
http://academy.dyndns.org/2161.htm

*edit* bắt đầu từ lv 13 nó đã không còn sử dụng java script nữa thay vào đó là dùng công nghệ applet của java.
Việc dùng js qua khá dễ vì nó là client side 100%. Việc dùng applet thì phải có chương trình dịch ngược lại để đọc code applet mới qua được. Cuộc phiên lưu của những người chưa học java kết thúc ở đây =))
 
Hôm nay ngồi chán chán, làm thêm 1 bài nữa:
Mã:
// Pwd.java; class file size 2607 bytes

import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Component;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintStream;
import java.net.URL;

public class Pwd extends java.applet.Applet
implements
  Runnable,
  java.awt.event.ActionListener
{
  private java.awt.Label l;
  private java.awt.TextField tf;
  private java.awt.Button li;
  private Thread th;
  private String p;

  public Pwd() {
    l = new java.awt.Label("Passwort");
    tf = new java.awt.TextField();
    li = new java.awt.Button("Enter");
    p = "event.Action";
  }

  public void actionPerformed(java.awt.event.ActionEvent a1) {
    Exception e2;
  L96:
    {
      try {
        if (p.equals(tf.getText())) {
          getAppletContext().showDocument(new java.net.URL(getDocumentBase(), new StringBuffer().append(p).append(".htm").toString()), "_self");
          break L96;
        }
        getAppletContext().showDocument(new java.net.URL(getDocumentBase(), "button.htm"), "_self");
      }
    }
    catch (e2) {
      out.println(e2);
    }
  }

  public void init() {
    Panel p1;
    p1 = new java.awt.Panel();
    setForeground(black);
    p1.setLayout(new java.awt.BorderLayout(10, 10));
    p1.setSize(200, 25);
    p1.setLocation(0, 3);
    p1.add(l, "West");
    p1.add(tf, "Center");
    setLayout(null);
    add(p1);
    li.setSize(100, 25);
    li.setLocation(50, 70);
    add(li);
    li.addActionListener(this);
  }

  public void run() {
  }

  public void start() {
    if (th == null) {
      th = new Thread(this);
      th.start();
    }
  }

  public void stop() {
    if (th != null) {
      th.interrupt();
      th = null;
    }
  }
}

==> pass event.Action
 
Đây:
- hoc 1 tuan 3 buoi, 15 buoi/khoa, khoảngr 300k/khoa
 
Tui thấy tự mình nghiên cứu , tìm tài liệu trên mạng, lên các forum và chỉ cần có lòng đam mê môn này là được rồi :) Tự học số 1 nà :)
 
Back
Top