[Visual Basic 2005 EE] foutmelding bij 64 bit string

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
Allereerst voor de duidelijkheid, ik gebruik Visual Basic 2005 Expres Edition

Het probleem:
Ik wil (PUUR voor de ervaring) een KeyLogger maken om zo tegelijkertijd te kunnen oefenen met ASCII codes, coderen van teksten, decoderen en openen van teksten. Ik wou een programma dat de KeyLogger functie uitoefende, en een ander programma dat de opgeslagen informatie zou kunnen openen, decoderen en dan zou kunnen tonen in een textbox. Daarvoor heb ik tutorials van youtube gebruikt van Leandro1021DX.
Hij gebruikt dan wel VB 2008 EE, maar ik heb nog geen problemen gehad met de codes uit de videos.
Voor de mensen die de filmpjes willen bekijken:

Visual Basic 2008 Library_ Login System (Part 1/2/3/4)
&
Visual Basic 2008 Tutorials_ Part Five - Load and save (1/2/3)

In zijn code gebruik ik het volgende om een gecodeerd opgeslagen bestand te laden

"des.Key = hashmd5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Key))
des.Mode = CipherMode.ECB
Dim desencrypting As ICryptoTransform = des.CreateDecryptor()
Dim buff() As Byte = Convert.FromBase64String(text)
Decrypt = ASCIIEncoding.ASCII.GetString(desencrypting.TransformFinalBlock(buff, 0, buff.Length))"

In VB2005EE krijg ik geen enkele foutmelding, maar bij het opstarten van het gebouwde bestand krijg ik een error, dat er "een ongeldige teken in de Base-64 tekenreeks" staat.
Na het zorgvuldig nakijken van de nagemaakte code, die overigens alleen is aangepast aan de naam "Decrypt", is het probleem niet verholpen. De enige verwijzing naar de Base-64 is hierboven dik gedrukt. Ik kan het bestand door laten werken, maar dan laad het de opgeslagen informatie niet in. Als ik het laat afsluiten, kan je raden dat het programma wordt afgesloten.

Ik kan nergens anders nog een mogelijke fout vinden.
Ik zou graag de mensen met meer ervaring in VB vragen mij te helpen met het oplossen van dit probleem.
Voor mensen die problemen hebben met het feit dat het een KeyLogger is: hetzelfde principe waarmee ik nu problemen heb, zou ook gewoon een tekstverwerker kunnen zijn waarbij alleen de gebruiker zijn bestanden ongecodeerd kan lezen.

De exacte inhoud van de foutmelding wil ik best posten als er om wordt gevraagd


PS: Een goede vriend van mij gebruikt de zelfde code, alleen dan toegepast als tekstverwerker. Hij heeft geen problemen en ik heb zelfs nog geprobeert exact dezelfde code te kopieëren

[ Voor 7% gewijzigd door Anoniem: 361307 op 30-05-2010 21:51 ]


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Je laat nergens zien wat er in je "text"-variabele staat. Ik gok zomaar dat daar behalve alfanumerieke karakters, forward slashes en +-tekens nog andere karakters in staan.

Heb je wel enig idee wat die code doet?

[ Voor 6% gewijzigd door CodeCaster op 30-05-2010 21:50 ]

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
CodeCaster schreef op zondag 30 mei 2010 @ 21:49:
Je laat nergens zien wat er in je "text"-variabele staat. Ik gok zomaar dat daar behalve alfanumerieke karakters, forward slashes en +-tekens nog andere karakters in staan.

Heb je wel enig idee wat die code doet?
Ik kan best de gehele code posten, mocht je dat willen
En op de vraag of ik weet wat de code doet: ik begrijp bijna alle code, en de code die ik niet snap vormt het probleem naar mijn idee. Ondanks dat kan ik een redelijke voorstelling maken van wat de code doet

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Anoniem: 361307 schreef op zondag 30 mei 2010 @ 21:54:
Ik kan best de gehele code posten, mocht je dat willen
Nee, je moet gewoon even kijken wat er gebeurt op het punt waar je programma de fout in gaat :) Je wil op de door jou dikgedrukte regel (treedt de fout ook echt op die regel op?) een base64-string decoderen naar een byte-array. De melding die je krijgt vertelt dat de string die je wil decoderen ongeldige, dus niet-base64 karakters bevat.

Eén en één is twee: je stopt verkeerde data in een functie, dus begrijp je niet wat je aan het doen bent :P

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
CodeCaster schreef op zondag 30 mei 2010 @ 22:00:
[...]

Nee, je moet gewoon even kijken wat er gebeurt op het punt waar je programma de fout in gaat :) Je wil op de door jou dikgedrukte regel (treedt de fout ook echt op die regel op?) een base64-string decoderen naar een byte-array. De melding die je krijgt vertelt dat de string die je wil decoderen ongeldige, dus niet-base64 karakters bevat.

Eén en één is twee: je stopt verkeerde data in een functie, dus begrijp je niet wat je aan het doen bent :P
Oké, ik zei trouwens ook niet dat ik goed was met VB, maar wil gewoon wat proberen.
Hoe zou ik volgens jou dan de foutmelding kunnen verhelpen, want ik snap er nog niks van 8)7

Acties:
  • 0 Henk 'm!

Anoniem: 57349

"gecodeerd opgeslagen bestand" blijkbaar is wat opgeslagen is geen geldige Base64,

die mogen alleen de volgende characters bevatten: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

Die foutmelding krijg je als je file die je probeert te laden leeg is of ongeldig. Ik kan me werkelijk niet voorstellen wat een 64-bit string precies is omdat Unicode toch echt 32-bit is, dan worden vast een hele hoop "null" characters weggeschreven, die geen geldige Base64 zijn.

Het is trouwens erg omslachtig om files met een file-encoding Base64 op te slaan. Dat moet in deze eeuw toch echt een keertje afgelopen zijn.

Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
Anoniem: 57349 schreef op zondag 30 mei 2010 @ 22:24:
...
Het is trouwens erg omslachtig om files met een file-encoding Base64 op te slaan. Dat moet in deze eeuw toch echt een keertje afgelopen zijn.
Ik snap dat ik niet goed ben in VB, en ik snap ook dat ik het beter anders kan coderen en decoderen.
Maar dan nog blijft dat ik nog geen toepasbare oplossing heb voor het probleem en dat dezelfde codes wel werken bij een vriend!
Het enige dat ik wil is dat het coderen en decoderen werkt.
Als iemand daar een oplossing voor heeft of mij kan laten zien/leren hoe het (waarscheinlijk) wel werkt dan is mijn vraag opgelost. Ik vraag niet om mijn codes dan maar te maken, omdat het niet het hele programma is. Maar ik zou zelf ook niet weten wat ik nu zou moeten doen. Dus als iemand mij een voorbeeld kan geven of kan helpen dan ben ik klaar en is mijn hele probleem opgelost.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Anoniem: 361307 schreef op zondag 30 mei 2010 @ 22:41:
Als iemand daar een oplossing voor heeft of mij kan laten zien/leren hoe het (waarscheinlijk) wel werkt dan is mijn vraag opgelost. Ik vraag niet om mijn codes dan maar te maken, omdat het niet het hele programma is. Maar ik zou zelf ook niet weten wat ik nu zou moeten doen. Dus als iemand mij een voorbeeld kan geven of kan helpen dan ben ik klaar en is mijn hele probleem opgelost.
Ik zou beginnen met begrijpen wat de foutmelding nu daadwerkelijk inhoudt, en opsporen waar die dan vandaan komt. Blijkbaar stop je verkeerde data in een methode; waar komt die data dan vandaan? Uit een tekstbox, uit een bestand, of uit een andere variabele? En hoe komt het dat er verkeerde data in staat?

Zet een breakpoint op de regel waar de methode wordt aangeroepen of zet een watch op de 'text'-variabele en kijk wanneer de inhoud verandert. Kortom: ga debuggen :)

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
oke, ik zal eens debuggen

ik meld de oplossing wel

Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
Ik heb het probleem al gevonden naar aanleiding van de reactie van puppywhacker.
Ik heb naast de 64 bit karakters ook [ en ] gebruikt.
Mijn vriend bleek daar ook problemen mee te hebben.
Hij wijkt nu ook de andere tekens.

Overigens zei hij ook dat: "er geen andere codeer mogelijkheden in VB zitten dan 64 bit".
Mocht dit niet zo zijn dan hoor ik dat graag in een berichtje naar mijn account.

PROBLEEM OPGELOST
IEDEREEN BEDANKT VOOR DE REACTIES EN DE HULP

CodeFreak

Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

:F

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Base64 is geen 64-bit maar 6-bit en daarnaast heeft .NET ondersteuning voor ettelijke soorten codering.

Als je encryptie bedoelt (wat base64 niet is): leesvoer.

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • 0 Henk 'm!

Anoniem: 361307

Topicstarter
bedankt voor de links, ik zal ze zeker gaan gebruiken
en de 64-bit moet inderdaad 6-bit zijn
Pagina: 1