Entschlüsseln von Logfiles (mit ASP)
Da ich kein ASP kann, jedoch Logfiles entschlüsseln sollte die mit einem ASP-Programm verschlüsselt wurden, suche ich Hilfe oder eine Erklärung des Codes.
Hallo,
ich habe von meinem Cheff die Aufgabe bekommen unsere Logfiles auf dem Server zu entschlüsseln (Format der Logfiles ist csv).
Die Logfiles wurden automatisch durch eine ASP-Seite verschlüsselt (Verschluesseln.asp). Leider habe ich Probleme mit dem entschlüsseln, da die Datei "Entschluesseln.asp" nicht richtig funktioniert.
Das weitere Problem ist, dass ich mich mit ASP kaum auskenne. Das Verschlüsselungsprogramm hat ein ehemaliger Mitarbeiter vom Internet bei uns eingebaut, leider steht er für eine Befragung nicht mehr bereit.
Ich wäre dankbar für jede Hilfe, Erklärung oder jeden Vorschlag den ich bekomme.
Hier mal der Quelltext der Dateien:
Serversidesha1.asp--------------------------
<script language="JScript" runat="server">
/*
/*
Hallo,
ich habe von meinem Cheff die Aufgabe bekommen unsere Logfiles auf dem Server zu entschlüsseln (Format der Logfiles ist csv).
Die Logfiles wurden automatisch durch eine ASP-Seite verschlüsselt (Verschluesseln.asp). Leider habe ich Probleme mit dem entschlüsseln, da die Datei "Entschluesseln.asp" nicht richtig funktioniert.
Das weitere Problem ist, dass ich mich mit ASP kaum auskenne. Das Verschlüsselungsprogramm hat ein ehemaliger Mitarbeiter vom Internet bei uns eingebaut, leider steht er für eine Befragung nicht mehr bereit.
Ich wäre dankbar für jede Hilfe, Erklärung oder jeden Vorschlag den ich bekomme.
Hier mal der Quelltext der Dateien:
Serversidesha1.asp--------------------------
<script language="JScript" runat="server">
/*
- A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- in FIPS PUB 180-1
- Copyright (C) Paul Johnston 2000.
- See http://pajhome.org.uk/site/legal.html for details.
/*
- Convert a 32-bit number to a hex string with ms-byte first
- Convert a string to a sequence of 16-word blocks, stored as an array.
- Append padding bits and the length, as described in the SHA1 standard.
- Add integers, wrapping at 2^32. This uses 16-bit operations internally
- to work around bugs in some JS interpreters.
- Bitwise rotate a 32-bit number to the left
- Perform the appropriate triplet combination function for the current
- iteration
- Determine the appropriate additive constant for the current iteration
- Take a string and return the hex representation of its SHA-1.
var hex_chr = "0123456789abcdef";
function hex(num)
{
var str = "";
for(var j = 7; j >= 0; j--)
str += hex_chr.charAt((num >> (j * 4)) & 0x0F);
return str;
}
/*
function str2blks_SHA1(str)
{
var nblk = ((str.length + 8) >> 6) + 1;
var blks = new Array(nblk * 16);
for(var i = 0; i < nblk * 16; i++) blks[i] = 0;
for(i = 0; i < str.length; i++)
blks[i >> 2] |= str.charCodeAt(i) << (24 - (i % 4) * 8);
blks[i >> 2] |= 0x80 << (24 - (i % 4) * 8);
blks[nblk * 16 - 1] = str.length * 8;
return blks;
}
/*
function add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
function rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
/*
function ft(t, b, c, d)
{
if(t < 20) return (b & c) | ((~b) & d);
if(t < 40) return b ^ c ^ d;
if(t < 60) return (b & c) | (b & d) | (c & d);
return b ^ c ^ d;
}
/*
function kt(t)
{
return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
(t < 60) ? -1894007588 : -899497514;
}
/*
function calcSHA1(str)
{
var x = str2blks_SHA1(str);
var w = new Array(80);
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
var e = -1009589776;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
var olde = e;
for(var j = 0; j < 80; j++)
{
if(j < 16) w[j] = x[i + j];
else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
t = add(add(rol(a, 5), ft(j, b, c, d)), add(add(e, w[j]), kt(j)));
e = d;
d = c;
c = rol(b, 30);
b = a;
a = t;
}
a = add(a, olda);
b = add(b, oldb);
c = add(c, oldc);
d = add(d, oldd);
e = add(e, olde);
}
return hex(a) + hex(b) + hex(c) + hex(d) + hex(e);
}
</script>
Verschluesseln.asp--------------------------
<!-- #include file="Serversidesha1.asp"-->
<%
Function jInApplicatonSpeichern(j)
Application.Lock
Application(Date() & "j") = j
Application.Unlock
End Function
Function intTochar(z)
'If z > 152 Then Response.Write z
strint = Chr(z)
intToChar = strint
End Function
Function getj()
getj = Application(Date()&"j")
End Function
Function konvertiereSonderzeichen(intZeichen)
Select Case intZeichen
Case 180 '=´
konvertiereSonderzeichen = 1
Case 192 '=À
konvertiereSonderzeichen = 2
Case 193 '=Á
konvertiereSonderzeichen = 3
Case 196 '=Ä
konvertiereSonderzeichen = 4
Case 200 '=È
konvertiereSonderzeichen = 5
Case 201 '=É
konvertiereSonderzeichen = 6
Case 204 '=Ì
konvertiereSonderzeichen = 7
Case 205 '=Í
konvertiereSonderzeichen = 8
Case 210 '=Ò
konvertiereSonderzeichen = 9
Case 211 '=Ó
konvertiereSonderzeichen = 10
Case 214 '=Ö
konvertiereSonderzeichen = 11
Case 217 '=Ù
konvertiereSonderzeichen = 12
Case 218 '=Ú
konvertiereSonderzeichen = 13
Case 220 '=Ü
konvertiereSonderzeichen = 14
Case 223 '=ß
konvertiereSonderzeichen = 15
Case 224 '=à
konvertiereSonderzeichen = 16
Case 225 '=á
konvertiereSonderzeichen = 17
Case 228 '=ä
konvertiereSonderzeichen = 18
Case 232 '=è
konvertiereSonderzeichen = 19
Case 233 '=é
konvertiereSonderzeichen = 20
Case 236 '=ì
konvertiereSonderzeichen = 21
Case 237 '=í
konvertiereSonderzeichen = 22
Case 242 '=ò
konvertiereSonderzeichen = 23
Case 243 '=ó
konvertiereSonderzeichen = 24
Case 246 '=ö
konvertiereSonderzeichen = 25
Case 249 '=ù
konvertiereSonderzeichen = 26
Case 250 '=ù
konvertiereSonderzeichen = 27
Case 252 '=ü
konvertiereSonderzeichen = 28
Case Else
konvertiereSonderzeichen = 29
End Select
End Function
%>
<script language="JScript" runat="server">
function lengthErmitteln(str)
{
intlength = str.length;
return intlength;
}
function verschluesseln(strUnverschluesselt, strSha1, intlength, j)
{
var strVerschluesselt = "";
for(var i = 0; i < intlength; i++)
{
var intZeichen = strUnverschluesselt.charCodeAt(i); es wird Code von Zeichen ermittelt
if(intZeichen > 152)
{
intZeichen = konvertiereSonderzeichen(intZeichen);
}
var intSha1 = strSha1.charCodeAt((getj()+i) % 40);
var intSha1 = strSha1.charCodeAt((j+i) % 40);
k = i - CInt(i%40)*40;
var intSha1 = strSha1.charCodeAt(k);
es wird von jedem Zeichen in strSha1 der Ascii-Wert ermittelt; da der String kürzer als der zu
Verschlüsselnde ist fängt man bei strSha1 wieder von vorne an wenn das Ende erreicht ist.
Response.Write("intSha1: " + intSha1 + "
");
Response.Write("j=: " + j + " i = " + i + "
");
if(intZeichen < 30)
{
var intVerschluesselt = intZeichen;
}
else
{
var intVerschluesselt = intZeichen + intSha1;
}
strVerschluesselt += intTochar(intVerschluesselt);
}
jInApplicatonSpeichern((j+intlength+1) % 40);
return strVerschluesselt;
}
</script>
<%
strSha1 = calcSHA1(CStr(Date()))
response.write "strSha1 = " & strSha1 & "
"
intlength = CInt(lengthErmitteln(strUnverschluesselt))
response.write "intlength = " & intlength & "
"
'strVerschluesselt = verschluesseln(strUnverschluesselt, strSha1, intlength, 0)
strVerschluesselt = verschluesseln(strUnverschluesselt, strSha1, intlength, Application(Date() & "j"))
response.write "strverschluesselt = " & strVerschluesselt & "
"
response.write "appl(date) & J = " & Application((Date() & "j")) & "
"
%>
Entschluesseln.asp.asp--------------------------
<!-- #include file="Serversidesha1.asp"-->
<%
Function jInSessionSpeichern(j)
Session("j") = j
End Function
Function vbscriptASC(i)
i = Asc(i)
vbscriptASC = i
End Function
Function intTochar(z)
Response.Write z & ", "
strint = Chr(CInt(z))
intToChar = strint
End Function
Function getj()
getj = Application(Date()&"j")
End Function
Function konvertiereSonderzeichen(intZeichen)
Select Case intZeichen
Case 1 '=´
konvertiereSonderzeichen = 180
Case 2 '=À
konvertiereSonderzeichen = 192
Case 3 '=Á
konvertiereSonderzeichen = 193
Case 4 '=Ä
konvertiereSonderzeichen = 196
Case 5 '=È
konvertiereSonderzeichen = 200
Case 6 '=É
konvertiereSonderzeichen = 201
Case 7 '=Ì
konvertiereSonderzeichen = 204
Case 8 '=Í
konvertiereSonderzeichen = 205
Case 9 '=Ò
konvertiereSonderzeichen = 210
Case 10 '=Ó
konvertiereSonderzeichen = 211
Case 11 '=Ö
konvertiereSonderzeichen = 214
Case 13 '=Ù
konvertiereSonderzeichen = 13
Case 14 '=Ú
konvertiereSonderzeichen = 218
Case 15 '=Ü
konvertiereSonderzeichen = 220
Case 16 '=ß
konvertiereSonderzeichen = 223
Case 17 '=à
konvertiereSonderzeichen = 224
Case 18 '=á
konvertiereSonderzeichen = 225
Case 19 '=ä
konvertiereSonderzeichen = 228
Case 20 '=è
konvertiereSonderzeichen = 232
Case 21 '=é
konvertiereSonderzeichen = 233
Case 22 '=ì
konvertiereSonderzeichen = 236
Case 23 '=í
konvertiereSonderzeichen = 237
Case 24 '=ò
konvertiereSonderzeichen = 242
Case 25 '=ó
konvertiereSonderzeichen = 243
Case 26 '=ö
konvertiereSonderzeichen = 246
Case 27 '=ù
konvertiereSonderzeichen = 249
Case 28 '=ù
konvertiereSonderzeichen = 250
Case 29 '=ü
konvertiereSonderzeichen = 252
Case Else
konvertiereSonderzeichen = 63 '->?
End Select
End Function
%>
<script language="JScript" runat="server">
function lengthErmitteln(str)
{
intlength = str.length;
return intlength;
}
function entschluesseln(strZeileVerschluesselt, strSha1, intlength, j)
{
var strEntschluesselt = "";
for(var i = 0; i < intlength; i++)
{
var intZeichen = vbscriptASC(strZeileVerschluesselt.charAt(i)); strZeileVerschluesselt.charCodeAt(i); es wird von jedem Zeichen in
Response.Write("intZeichen: " + intZeichen + "
"); strUnverschluesselt der Ascii-Wert ermittelt
var intSha1 = strSha1.charCodeAt((getj()+i) % 40);
var intSha1 = strSha1.charCodeAt((j+i) % 40);
es wird von jedem Zeichen in strSha1 der Ascii-Wert ermittelt; da der String kürzer als der zu
Entschlüsselnde ist fängt man bei strSha1 wieder von vorne an wenn das Ende erreicht ist.
Response.Write("intSha1: " + intSha1 + "
");
Response.Write("j: " + j + " i = " + i + "
");
var intEntschluesselt = ""
if(intZeichen < 30)
{
intZeichen = konvertiereSonderzeichen(intZeichen);
intEntschluesselt = intZeichen;
}
else
{
intEntschluesselt = intZeichen - intSha1; intSha1 oder 56;
}
Response.Write("intEntschluesselt: " + intEntschluesselt + "
");
var z = intTochar(intEntschluesselt);
Response.Write("z: " + z + "
");
strEntschluesselt += intTochar(intEntschluesselt);
//Response.Write("strEntschluesselt: " + strEntschluesselt + "
");
}
jInSessionSpeichern((j+intlength+1) % 40);
return strEntschluesselt;
}
</script>
<%
Set fsObj = Server.CreateObject("Scripting.FileSystemObject")
strQuelleName = Request.QueryString("Logfile")
strParentFolder = Request.QueryString("LogfilePath") & "\"
strQuelle = strParentFolder & strQuelleName
strZiel = strParentFolder & "Entschluesselt" & strQuelleName
'Response.Write "Quelle: " & strQuelle & "
"
'Response.Write "Ziel: " & strZiel & "
"
If fsObj.FileExists(strQuelle) Then
strDatumZeit = Request.QueryString("DatumZeit")
Response.Write "DatumZeit: " & strDatumZeit & "
"
strDatum = Left(strDatumZeit, 10)
Response.Write "Datum: " & strDatum & "
"
strSha1 = calcSHA1(strDatum)
'strSha1 = calcSHA1(CStr(Date())) 'aus verschlüsseln
Response.Write "strSha1: " & strSha1 & "
"
Set objLogDatei = fsObj.OpenTextFile(strQuelle,1,true)
Session("j") = 0
Response.Write "Anfang Session(""j""): " & Session("j") & "
"
While Not objLogDatei.AtEndOfStream
strZeileVerschluesselt = objLogDatei.ReadLine
Response.Write "strZeileVerschluesselt: " & strZeileVerschluesselt & "
"
intlength = CInt(lengthErmitteln(strZeileVerschluesselt))
'Response.Write "intlength: " & intlength & "
"
strZeileEntschluesselt = entschluesseln(strZeileVerschluesselt, strSha1, intlength, Session("j"))
Response.Write "strZeileEntschluesselt: " & strZeileEntschluesselt & "
"
If fsObj.FileExists(strZiel) Then
Set objLogfileEntschluesselt = fsObj.OpenTextFile(strZiel,8,true)
Else
Set objLogfileEntschluesselt = fsObj.CreateTextFile(strZiel)
End If
objLogfileEntschluesselt.WriteLine strZeileEntschluesselt
objLogfileEntschluesselt.Close
Response.Write "Session(""j""): " & Session("j") & "
"
Wend
objLogDatei.Close
Else
Response.Write "Datei existiert nicht."
End If
%>
Ich hoffe mir kann jemand helfen. Da der Quellcode nicht richtig hier dargestellt werden kann, sende ich die Dateien auch gerne zu oder lade sie auf meine Homepage hoch.
MfG
Treazer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 28873
Url: https://administrator.de/contentid/28873
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
1 Kommentar
hallo treazer
habe gerade deine email mit den quellcodes gecheckt, wobei serversidesha1 leider nicht mitgekommen ist.
was du mir da geschickt hast hat aber nichts mit asp.net zu tun und ich bezweifele das dich das weiter bringt.
es ist ja nicht so, das man irgendein cryptoprogramm sich runterlaedt und dann ans entschluesseln geht.
das dateiformat ist csv (comma seperated values), also ein tabellen-datenformat.
du hast geschrieben, dass die daten automatisch durch eine ASP-seite verschluesselt worden sind, was mir unlogisch erscheint. die seite verschluesselt nichts, sondern die anwendung oder das script dahinter.
wenn die dateien unter asp.net verschluesselt worden sind dann solltest du dich mal unter folgendem link dazu einlesen : http://www.microsoft.com/germany/msdn/library/security/ErlebnisseMitDer ...
ich habe den quellcode noch nicht ganz durch, aber ich glaube dass er dir nicht helfen wird bei deinem prob
soweit erstmal...
saludos
gnarff
habe gerade deine email mit den quellcodes gecheckt, wobei serversidesha1 leider nicht mitgekommen ist.
was du mir da geschickt hast hat aber nichts mit asp.net zu tun und ich bezweifele das dich das weiter bringt.
es ist ja nicht so, das man irgendein cryptoprogramm sich runterlaedt und dann ans entschluesseln geht.
das dateiformat ist csv (comma seperated values), also ein tabellen-datenformat.
du hast geschrieben, dass die daten automatisch durch eine ASP-seite verschluesselt worden sind, was mir unlogisch erscheint. die seite verschluesselt nichts, sondern die anwendung oder das script dahinter.
wenn die dateien unter asp.net verschluesselt worden sind dann solltest du dich mal unter folgendem link dazu einlesen : http://www.microsoft.com/germany/msdn/library/security/ErlebnisseMitDer ...
ich habe den quellcode noch nicht ganz durch, aber ich glaube dass er dir nicht helfen wird bei deinem prob
soweit erstmal...
saludos
gnarff