Avatar billede el-prebsi Nybegynder
20. november 2001 - 21:04 Der er 20 kommentarer og
1 løsning

Extraction af password

Hej, koden herunder er fra try2hack.nl test4 og jeg kan ikke forstå hvordan man kan extracte username og password ud af filen...

Jeg har fat i noget med s, totno og sådan noget i den retning, men er der nogen der kan give mig en forklaring på hvordan jeg skal gøre?
hvad betyder f.eks. trim() og intern()?
og hvad med:  inuser[totno] = s;
og hvordan hænger det sammen med resten af koden:

en \"simpel\" forklaring ønskes

import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.EventObject;

public class PasswdLevel4 extends Applet
    implements ActionListener
{

    public PasswdLevel4()
    {
        inuser = new String[22];
        totno = 0;
        countConn = null;
        countData = null;
        inURL = null;
        txtlogin = new TextField();
        label1 = new Label();
        label2 = new Label();
        label3 = new Label();
        txtpass = new TextField();
        lblstatus = new Label();
        ButOk = new Button();
        ButReset = new Button();
        lbltitle = new Label();
    }

    void ButOk_ActionPerformed(ActionEvent actionevent)
    {
        boolean flag = false;
        for(int i = 1; i <= totno / 2; i++)
            if(txtlogin.getText().trim().toUpperCase().intern() == inuser[2 * (i - 1) + 2].trim().toUpperCase().intern() && txtpass.getText().trim().toUpperCase().intern() == inuser[2 * (i - 1) + 3].trim().toUpperCase().intern())
            {
                lblstatus.setText(\"Login Success, Loading..\");
                flag = true;
                String s = inuser[1].trim().intern();
                String s1 = getParameter(\"targetframe\");
                if(s1 == null)
                    s1 = \"_self\";
                try
                {
                    finalurl = new URL(getCodeBase(), s);
                }
                catch(MalformedURLException _ex)
                {
                    lblstatus.setText(\"Bad URL\");
                }
                getAppletContext().showDocument(finalurl, s1);
            }

        if(!flag)
            lblstatus.setText(\"Invaild Login or Password\");
    }

    void ButReset_ActionPerformed(ActionEvent actionevent)
    {
        txtlogin.setText(\"\");
        txtpass.setText(\"\");
    }

    public void actionPerformed(ActionEvent actionevent)
    {
        Object obj = actionevent.getSource();
        if(obj == ButOk)
        {
            ButOk_ActionPerformed(actionevent);
            return;
        }
        if(obj == ButReset)
            ButReset_ActionPerformed(actionevent);
    }

    public void destroy()
    {
        ButOk.setEnabled(false);
        ButReset.setEnabled(false);
        txtlogin.setVisible(false);
        txtpass.setVisible(false);
    }

    public void inFile()
    {
        new StringBuffer();
        try
        {
            countConn = inURL.openStream();
            countData = new BufferedReader(new InputStreamReader(countConn));
            String s;
            while((s = countData.readLine()) != null)
                if(totno < 21)
                {
                    totno = totno + 1;
                    inuser[totno] = s;
                    s = \"\";
                } else
                {
                    lblstatus.setText(\"Cannot Exceed 10 users, Applet fail start!\");
                    destroy();
                }
        }
        catch(IOException ioexception)
        {
            getAppletContext().showStatus(\"IO Error:\" + ioexception.getMessage());
        }
        try
        {
            countConn.close();
            countData.close();
            return;
        }
        catch(IOException ioexception1)
        {
            getAppletContext().showStatus(\"IO Error:\" + ioexception1.getMessage());
        }
    }

    public void init()
    {
        setLayout(null);
        setSize(361, 191);
        add(txtlogin);
        txtlogin.setBounds(156, 72, 132, 24);
        label1.setText(\"Please Enter Login Name & Password\");
        label1.setAlignment(1);
        add(label1);
        label1.setFont(new Font(\"Dialog\", 1, 12));
        label1.setBounds(41, 36, 280, 24);
        label2.setText(\"Login\");
        add(label2);
        label2.setFont(new Font(\"Dialog\", 1, 12));
        label2.setBounds(75, 72, 36, 24);
        label3.setText(\"Password\");
        add(label3);
        add(txtpass);
        txtpass.setEchoChar(\'*\');
        txtpass.setBounds(156, 108, 132, 24);
        lblstatus.setAlignment(1);
        label3.setFont(new Font(\"Dialog\", 1, 12));
        label3.setBounds(75, 108, 57, 21);
        add(lblstatus);
        lblstatus.setFont(new Font(\"Dialog\", 1, 12));
        lblstatus.setBounds(14, 132, 344, 24);
        ButOk.setLabel(\"OK\");
        add(ButOk);
        ButOk.setFont(new Font(\"Dialog\", 1, 12));
        ButOk.setBounds(105, 156, 59, 23);
        ButReset.setLabel(\"Reset\");
        add(ButReset);
        ButReset.setFont(new Font(\"Dialog\", 1, 12));
        ButReset.setBounds(204, 156, 59, 23);
        lbltitle.setAlignment(1);
        add(lbltitle);
        lbltitle.setFont(new Font(\"Dialog\", 1, 12));
        lbltitle.setBounds(12, 14, 336, 24);
        String s = getParameter(\"title\");
        lbltitle.setText(s);
        ButOk.addActionListener(this);
        ButReset.addActionListener(this);
        infile = new String(\"level4\");
        try
        {
            inURL = new URL(getCodeBase(), infile);
        }
        catch(MalformedURLException _ex)
        {
            getAppletContext().showStatus(\"Bad Counter URL:\" + inURL);
        }
        inFile();
    }

    private URL finalurl;
    String infile;
    String inuser[];
    int totno;
    InputStream countConn;
    BufferedReader countData;
    URL inURL;
    TextField txtlogin;
    Label label1;
    Label label2;
    Label label3;
    TextField txtpass;
    Label lblstatus;
    Button ButOk;
    Button ButReset;
    Label lbltitle;
}
Avatar billede el-prebsi Nybegynder
20. november 2001 - 21:05 #1
Avatar billede dex_dexter Nybegynder
20. november 2001 - 21:06 #2
/me følger lige med da jeg også er igang :)
Avatar billede amyand Nybegynder
20. november 2001 - 21:06 #3
prøv at kigge på dette, bare et gæt...

void ButOk_ActionPerformed(ActionEvent actionevent)
    {
        boolean flag = false;
        for(int i = 1; i <= totno / 2; i++)
            if(txtlogin.getText().trim().toUpperCase().intern() == inuser[2 * (i - 1) + 2].trim().toUpperCase().intern() && txtpass.getText().trim().toUpperCase().intern() == inuser[2 * (i - 1) + 3].trim().toUpperCase().intern())
Avatar billede el-prebsi Nybegynder
20. november 2001 - 22:51 #4
ja, det er netop det jeg har gjort, men jeg kommer til at totno fra starten er tildelt en værdi på 0 men increases til 20 (< 21) og at inuser[totno] = s
while-løkken forekommer så længe at
s = countData.readLine()) hvor countdata er new BufferedReader(new InputStreamReader(countConn)) og hvor så countConn er lig inURL.openStream();, men så er jeg også lost - hvor kommer inURL fra og hvad beskriver denne?
Avatar billede dex_dexter Nybegynder
20. november 2001 - 23:04 #5
prøv at kig i din temp. internet files.
der ligger en fil der hedder level4 eller level4[1] . txt
åben den og der står koden
Avatar billede amyand Nybegynder
20. november 2001 - 23:40 #6
hmm, den fil kan jeg sku ikke finde......
Avatar billede dex_dexter Nybegynder
20. november 2001 - 23:50 #7
den skulle meget gerne ligge der hvis du har kørt applet fra siden.
prøv evt at slettet oversigt, for så ligger der kun lige 5 filer eller sådan
Avatar billede dex_dexter Nybegynder
20. november 2001 - 23:50 #8
glæd jer ikke til 6´eren den er lidt for extrem syns jeg
Avatar billede dex_dexter Nybegynder
20. november 2001 - 23:51 #9
man kan ikke søge efter den fil(af en eller anden grund) så man skal ind og vælge den manuelt
Avatar billede el-prebsi Nybegynder
21. november 2001 - 00:33 #10
hvordan er du kommet forbi femmeren???
jeg fik usern: AlmostAHacker og Password: en masse sjove bogstaver

men jeg får at vide at username er forkert???

why

hvilken decompiler har du brugt og hvorfra har du hentet den???
Avatar billede dex_dexter Nybegynder
21. november 2001 - 00:39 #11
jeg har fået
Try2Hack
AppletsAreEasy
læs det her

Svar fra dex_dexter 
20/11 2001 23:04:20    prøv at kig i din temp. internet files.
der ligger en fil der hedder level4 eller level4[1] . txt
åben den og der står koden 
Avatar billede disky Nybegynder
21. november 2001 - 08:28 #12
Brug et ordentligt Java IDE og single step igennem så kan du nemt se hvad løsningen er.
Avatar billede dex_dexter Nybegynder
21. november 2001 - 14:33 #13
disky>> hvis han bare kigger i sin cache ligger svaret der og venter på ham.... koden er bare et vildspor
Avatar billede disky Nybegynder
21. november 2001 - 14:54 #14
det ved jeg da godt, jeg er da forlængst kommet forbi den
Avatar billede dex_dexter Nybegynder
21. november 2001 - 19:03 #15
har du hacket lvl 6?
Avatar billede el-prebsi Nybegynder
21. november 2001 - 19:26 #16
Angående level 5  - hvordan løser I den???
Avatar billede dex_dexter Nybegynder
21. november 2001 - 19:33 #17
decompil skidtet, kig i koden.
og så er den nem nok
Avatar billede disky Nybegynder
22. november 2001 - 08:32 #18
de bliver alligevel først sjove fra lvl7 og op :)
Avatar billede el-prebsi Nybegynder
22. november 2001 - 10:36 #19
Hvilken decompiler bruger i? Dodi\'s virker kun hvis man har VB3 og hvem har så lige den liggende???
Avatar billede disky Nybegynder
22. november 2001 - 10:39 #20
Avatar billede el-prebsi Nybegynder
22. november 2001 - 14:12 #21
Det er jo Dodi\'s discompiler, men hvor kan jeg få fat i VB3 - ellers kan jeg jo ikke bruge den!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester