martedì 28 giugno 2011

Racconto del Encoding Cryptic


Qualcuno di nome Robbie aveva creato una richiesta di registrazione per l'assistenza nella risoluzione di un problema con un semplice Visual Basic. Un'applicazione console NET. E 'stato utilizzato per recuperare ed elaborare registrazioni dei prodotti e transazioni con carta di credito via Internet per un pezzo di shareware di nicchia.

"Linea di fondo, faccio Fortran e C + +, non so o per sapere Visual Basic. NET", ha spiegato il post. "Tutto quello che so è che ho un app con il file sorgente 2KB per questo che ho bisogno fissa così posso guadagnare dei soldi. Sarò felice di inviare 100 dollari per la persona che può risolvere il problema."


Naturalmente, Lee sentivo un po 'cauto che fare con un ragazzo (o ragazza) da Internet, ma la promessa di una facile $ 100 tentati lei a prendere una possibilità.

Elaborazione su Internet ... Kind Of
A pochi minuti di lavorazione e l'invio di una missiva professionalmente formulato, Lee ha ricevuto una risposta.

Dopo aver gentilmente ringraziato Lee per la sua e-mail, Robbie ha spiegato che l'allegato file. Exe normalmente eseguito su una base quotidiana con l'output diretto a un file di testo che, a loro volta, vengono caricate in un foglio elettronico. Scritto anni fa, aveva funzionato alla perfezione fino a quando l'altro giorno quando ha iniziato soffocamento.

Un'esecuzione del comando l'eseguibile ha rivelato l'errore: lunghezza non valida per una Base-64 matrice di caratteri.

Basandosi sulla sua esperienza professionale con la risoluzione dei problemi di base-64 problemi di codifica, Lee è stato positivo che il problema sarebbe stato un gioco da ragazzi risolvere. Desiderosi di testare il suo coraggio, Lee saltato direttamente in allegato. Sorgente vb. Lei è stato rapidamente preso in contropiede:

Le importazioni System.Net.Sockets Imports System.IO Importazioni riservate modulo EmailApp Sub Main () ProcessPayment As New Server Segreto As ns TcpClient fioco come sr NetworkStream As StreamReader s1 As String = user "pop3.initech.com" As stringa = pass "secret@initech.com" As String = "l & 28a%" Server = New TcpClient (s1, 110) ns = Server.GetStream sr = New StreamReader (Server.GetStream) dati As String = "UTENTE" + utente + vbCrLf + "PASS" + passare + _ vbCrLf + "STAT" + vbCrLf + "STAT" + vbCrLf Dim ENC1 () As Byte = _ System.Text.Encoding.ASCII.GetBytes (data.ToCharArray ()) ns. scrivere (ENC1, 0, enc1.Length) Dim x As Integer = CInt (String.Concat (sr.ReadLine sr.ReadLine + + + _ sr.ReadLine sr.ReadLine). Split ("") (6)) Dim tmp As String For i As Integer = x A x dati = "RETR" & vbCrLf & i.ToString ENC1 = System.Text.Encoding.ASCII.GetBytes (data.ToCharArray ()) ns.Write (ENC1, 0, enc1.Length ".") tmp = sr.ReadLine Mentre (tmp <>) Se tmp.StartsWith ("Oggetto") Poi dati tmp.Substring = (9, tmp.Length - 9) End If tmp = Fine sr.ReadLine Mentre Console. WriteLine (i.ToString + "," + ProcessPayment.DeCrypt (dati)) data = "DELE" & vbCrLf & i.ToString ENC1 = System.Text.Encoding.ASCII.GetBytes (data.ToCharArray ()) ns.Write ( ENC1, 0, enc1.Length) dati Avanti = "QUIT" + vbCrLf ENC1 = System.Text.Encoding.ASCII.GetBytes (data.ToCharArray ()) ns.Write (ENC1, 0, enc1.Length) End Sub

Fine modulo
mente di Lee vacillava. Il modo in cui il programma "lavorato" era quasi impensabile. L'elaborazione dei pagamenti tramite posta elettronica nel 21 ° secolo ... e nel campo argomento?! Esattamente che tipo di follia aveva camminato in?

In realtà Imposta
Dopo Lee calmato, pensò di nuovo a ciò che Robbie aveva detto prima di rendersi conto, "Ah ah! Questo deve essere un problema di dati!" Ha proceduto a dare uno sguardo a messaggi di posta elettronica di backup nel conto elencati il codice sorgente.

La maggior parte dei messaggi, almeno cinque al giorno, aveva soggetti che sembrava questa: H4sIAJ4qnU0AA4vML1VIyy/NS1EoyUhVCE5NLkotUQgN8lFUyCgpKbDS10/KLNHLqdRPyw3LcXLjAgDGBcb9LwAA

Tuttavia, un web marketer aveva apparentemente scoperto l'account "nascosto", l'avvelenamento con offerte incredibili per i quasi-legale per corrispondenza prodotti farmaceutici, che ha causato il programma a soffocare. Lee pensato che ne sarebbe soffocata troppo.

Poiché l'aggiunta di un filtro antispam euristico per il programma è stato non solo fuori del campo di applicazione, ma anche al di fuori dei 100 dollari, Lee ha preso la strada più rapida e semplice avvolgendo la funzione "Decrypt" all'interno di un blocco Try ... Catch. Un rapido test ha rivelato che il programma potrebbe ora scaricare ed esportare registrazioni degli utenti come era prima. I nomi utente, indirizzi e-mail, numeri di telefono e carta di credito tutte le apparve, disposti in ordinate, campi delimitati da virgole. Lee ha inviato la sua revisione torna a Robbie, che, in cambio, si offrì di incontrarsi per un caffè.

Quando si incontrarono, Lee fece del suo meglio per spiegare perché il processo non quando lo ha fatto e ciò che ha fatto per risolvere il problema. Robbie sembrava essere ricettivo. A seguito di alcune ulteriori chiacchiere, il pagamento è stato consegnato e Lee fatto una domanda che ancora rodeva lei.

"Il terzo file che mi hai mandato - il file Confidential.DLL - che cosa vuol fare è che ..."

"Mi dispiace, nessuna idea," Robbie taglio con le palme aperte davanti a lei. "Non la mia area di competenza, ricordi?"

"Inoltre," Lee ridacchiò, "tutto funziona esattamente come prima se non meglio, e questo è ciò che conta, giusto?"

Lee trattenne il respiro per un secondo prima di estendere una mano ringraziando per l'opportunità di Robbie. Il suo senso di responsabilità degli sviluppatori urlava nella sua testa: "Sei pazzo, signora Sì, funziona oggi, ma cosa succede se qualcosa cambia se si ottiene hackerato?!??"

Sulla strada di casa, Lee decise di rimandare salvare il mondo fino a quando un altro giorno. Nel frattempo, stava andando a scoprire cosa che ha fatto DLL.

Nascosti nella segretezza?
Due ostacoli principali Lee impedito di vedere come la DLL funzionato. La mancanza di sorgente del programma e il file denominato "Riservato", che aveva una classe denominata "Secret". Nonostante questi ostacoli, Lee era in grado di decompilare facilmente il file binario di vedere la verità che i laici in essa:

Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla


1 commento:


  1. Tộc trưởng của Ma Tượng Thú tộc hơi u buồn một chút sau đó cũng thả người mà đi, sắc mặt tựa hồ không tốt lắm.

    - Ngao.

    Một khí tức cường hãn tràn ngập, Phượng Kình của Thần Phương tộc hóa thành một con phượng hoàng bay lên trên không trung.

    - Thần Phượng tộc với Thần Hoàng tộc vẫn có điểm khác nhau.

    Nhạc Thành kỳ quái nhìn bản thể của Thần Phượng tộc trên không trung,đồng tâm
    game mu
    cho thuê nhà trọ
    cho thuê phòng trọ
    nhac san cuc manh
    số điện thoại tư vấn pháp luật miễn phí
    văn phòng luật
    tổng đài tư vấn pháp luật
    dịch vụ thành lập công ty
    http://we-cooking.com/
    chém gió bản thể của Đông Phương Lạc Nhan của Thần Hoàng tộc thì có màu sắc diễm lệ, mà của Phượng Kình thì không bằng.

    Theo khí tức, Nhạc Thành nhận thấy huyết dịch trên người của Phượng Kình không mạnh bằng của Đông Phương Lạc Nhan.

    - Gào, hú.

    Phượng Kình hóa thành bản thể, hán tử áo vàng của Hổ tộc cũng gào thét trên không trung, hóa thành một thân hình cao hơn nghìn thước.

    - Cái này là viễn cổ Hổ tộc.

    Nhạc Thành thì thầm một tiếng, không khỏi so sánh Khiếu Thiên Hổ với bọn họ. Đúng là

    RispondiElimina