È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

De Bello Mundi Forum

PROGRAMMARE CON PYTHON

  • Messaggi
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 20:26
    Re:
    boboav, 19/01/2010 19.15:

    scusate che cambia fra un formato .py e uno .exe




    per eseguire il formato py deve avere l'ambiente python installato. invece gli exe sono esguibili da qualsiasi macchina windows.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 20:42
    Re: Re:
    ma sei sicuro che prima funzionava e tu non hai cambiato niente? prova ad eseguire questo. ho aggiunto la stampa dei valori che legge dal file.
    tenta di convertire in folat anche le stringhe, e poi, come giustamente avevo intuito, arriva alla fine del file, legge solo la t, e quando la comverte in float che vuole 4 byte va in errore..
    [Modificato da rhaymo 19/01/2010 20:44]

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 19/01/2010 20:48
    Ma si usa lo stesso linguaggio fra py e exe?
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 20:50
    py è solo per il linguaggio python, exe è un formato comprensibile da windows che può essere ottenuto partendo da vari linguaggi.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 19/01/2010 20:58
    Io ho aperto il kingdoms.exe, il linguaggio degli exe è quello con tutti CC C4......................
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 21:01
    Re:
    boboav, 19/01/2010 20.58:

    Io ho aperto il kingdoms.exe, il linguaggio degli exe è quello con tutti CC C4......................




    e con cosa l'hai aperto? cmq quello è il linguaggio macchina, che è di difficile comprensione anche per chi è del mestiere. per questo i "sorgenti" sono scritti in linguaggi più facili da capire per l'uomo (ma incomprensibili al processore) e poi vengono convertiti automaticamente nel linguaggio macchina.
    Fra l'altro quelle cc che hai visto tu potrebbero essere indirizzi e non instruzioni del linguaggio.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 21:05
    infatti, anzi, quei cc f2 3d.... sono solo la rappresentazione esadecimale dei numeri 10101010101010000001 e senza un interprete o senza il protagonista del film matrix non credo che un essere umano abbia la capacità di capirlo...
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 21:07
    john allora qual è il problema?

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 19/01/2010 21:09
    E come li converto in un formato comprensibile?
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 21:16
    dovresti prima convertirlo in assembler e poi da lì provare a convertirlo in c o c++. sinceramente non so a cosa ti convenga.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 21:25
    @ rhaymo
    Se intendi il programma non lo so, mi leggerò meglio quando avro tempo i tutorial su Python.

    @ boboav, l'argomento che stai portando alla luce si chiama REVERSE ENGINERING ed è il tentativo di certi programmi (DESASSEMBLER) di risalire se non al codice originale almeno al linguaggio Assembly che anche se è un liguaggio di programmazione come Python assomiglia più al livello base base cioè al linguaggio macchina cioè una serie di istruzioni del tipo: metti il valore a in questo posto sommalo al valore b sostituisci la memoria ecc... (rahymo te lo spiega meglio) che in python si scrive a+b=c.
    Sfido chiunque a capire il codice di un programma se anche 2+2 è scritto in una facciata di codice!!!
    Infatti esistono questi programmi come Python che permettono di non scrivere il linguaggio macchina ma una lora rappresentazione, quando vengono "compilati" o trasformati in "exe" il programma scrive il linguaggio macchina.
    Il problema di fondo è che ad esempio i cicli o le funzioni tanto semplici da capire in python vengono trasformate in una serie di operazioni che deve fare la machina e la procedura inversa non darà mai lo stesso risultato.
    Esempio solo per farti capire, se scrivi x= 2+2 o 3+1 o 5-1 e poi il compilatore lo trasforma in linguaggi macchina cioè x=4 come puoi risalire al codice che ha generato quella operazione.
    Quindi il codice lo puoi scivere in mille modi diversi (comprensibili ad un essere umano che riesce a vederli nel comlplesso e capirne il funzionamento) ma una volta trsformato in instruzioni del computer perdi tutte quelle strategie, scorciatorie, modi di scriverlo che avevi adottato
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 19/01/2010 21:32
    Ho capito, è un casino insomma
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 21:34
    una cosa che si riesce a risalire dall'assebler sono alcune operazioni logiche come ad esempio "se x=0 allora fai questo" (anche quà esiste in assembler solo se "x==0" e "se x!=0", solo due modi per controllare una variabile mentre in python si può scrivere anche > < >= <= e oltre allo zero si può mettere qualsiasi numero. Non mi ricordo bene ma erano jnot e j.. qualcosa cioè se uguale a zero e se diverso da zero...
    Quindi vedi anche quà che effettivamente c'è la perdita totale del suo modo di essere costruito trasformado operazioni complesse tipo X<0 in una serie di Jump (salti a righe di codice diversi),controlli logici ecc... da cui ovviamente non si può dedurre come è stato fatto.

    PS: jump era proprio uno dei comandi che cercano gli Hacker per "saltare" letteralmente quei passaggi dove esiste il controllo esempio del cd nel lettore ecc... per fare le crack

    Noi modder infatti non modifichiamo il programma del gico ma "solo", si fa per dire, quei file utilizzati come deposito di informazioni. Pensa se tutto fosse inglobato nell'exe !!!
    [Modificato da johnwhile 19/01/2010 21:39]
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 19/01/2010 21:38
    Io non volevo fare crack, volevo semplicemente modificare il limite di regioni di medieval II, da 200 a 300
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 21:43
    Re:
    boboav, 19/01/2010 21.38:

    Io non volevo fare crack, volevo semplicemente modificare il limite di regioni di medieval II, da 200 a 300


    eheheheh, può essere un semplice numero scritto all'interno (innutile che lo cerchi tanto non troverai mai il numero 300 o 200) ma come fai a trovarlo tra migliardi di numeri ???? Dovresti sapere dove si trova ma per fare ciò devi sapere quale è la funzione nel programma che utilizza questo numero, e risalire sempre di più... peccato che non troverai scritto: limiteregioni = 200 ma al massimo var=10101010101... (Ecco in assembler non ci sono le x y a b c f come variabili ma solo due o tre mi sembra.
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 21:47
    Infatti quel pallone gonfiato che faceva tanto il brillante dicendomi: si dammi i file che risalisco ben io al punto in cui viene disabilitata la formazione a testuggine...
    non mi risponde più !!!
    Da come ho capito quelli che si definiscono hacker sono solo capaci al massimo di fare crack, anche perchè su internet esiste una spiegazione molto dettagliata di come trovare quei jnt o jump (mi ricordo che uno voleva dire se =0 allora continua, l'altro che se è diverso da zero vai a chissa dove....)

    Anchio ero tutto esaltato all'idea di quello che si poteva fare... poi sono tornato con i piedi per terra
    [SM=g7333]
    [Modificato da johnwhile 19/01/2010 21:49]
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 20/01/2010 06:46
    Uffa:(, però ho trovato il numero che determina il limite di edifici(di 128 c'era solo uno)
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 20/01/2010 11:23
    potete allegarmi elephant_cannon_lod0.modelreferencepoints ?
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 20/01/2010 11:46
    io posso stasera.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 20/01/2010 13:07
    sono andato sul forum di Python per chiedere la correzione e mi hanno detto che avevo solo sbagliato la spaziatura in un ciclo... quindi quel debug non è che ti rivela proprio bene l'errore.
    Adesso funziona, ho messo un bottone che mi carica il file !
    [Modificato da johnwhile 20/01/2010 13:07]
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 20/01/2010 13:16
    il debug non rivela gli errori.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 20/01/2010 14:19
    Vogliamo usare per "De Bello Mundi" un exe nuovo con il limite degli edifici aumentato?
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 20/01/2010 14:20
    No

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 20/01/2010 14:33
    Re:
    boboav, 20/01/2010 14.19:

    Vogliamo usare per "De Bello Mundi" un exe nuovo con il limite degli edifici aumentato?


    L'ascia stare l'exe, neanche chi ci sà mettere le mani riesce a fare granche...

    Rayhmo sai per caso di qualche estensione per Python che permetta di creare comodamente un'interfaccia grafica, cioè qualcosa che semplifichi di molto la creazione di menu, bottoni ecc... perchè c'è troppa roba da sapere per fare anche una semplice finestra
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 20/01/2010 14:37
    python non lo conosco, ogni tanto guardo qualcosa in internet quando tu hai qualche problema.
    o cerchi su google, oppure per creare le finestre ti copi il codice del goat, per esempio.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 20/01/2010 21:08
    sapresti come fare a leggere dati dal file di testo ?
    Il mio problema è che ad esempio devo leggere numeri interi, stringhe, numeri floating... l'ordine lo conosco ma non sò come si può fare perchè f.read() legge solo stringhe.
    inoltre dovrei convertirli in esadecimale e scrivere il file binario...
    Da gli script di KnightErrant non riesco a capirecasa fà anche perchè usa classi, e altre cose i cui non ho alba.
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 20/01/2010 21:21
    per la lettura di un file di testo ti posso indicare i tutorial:

    www.java2s.com/Code/Python/File/Text-File-Read.htm

    docs.python.org/tutorial/inputoutput.html

    leggi le stringhe normalmente e poi ad esempio le converti in float:
    stackoverflow.com/questions/379906/python-parse-string-to-floa...


    cosa devi convertire in esadecimale?

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 20/01/2010 21:42
    Ah ecco il terzo link mi ha illuminato !
    Ma quindi devo fare così:
    dato che tutti i 3 tipi utilizzati sono separati da tab o da spazio cioè caratteri vuoti faccio un ciclo che mi legge 1 carattere alla volta, quando trova uno spazio o un tab finisce di concatenare la stringa principale (cioè ad ogni ciclo aumenta fino alll'ultimo carattere)
    Poi semplicemente le converto con int() o float() per trovare il numero.
    Dopodiche dovrei riuscire a fare da solo cioè la funzione che trasforma in esadecimale e la inserisce nel file binario è già fatta (se vedi all'interno).

    Stamattina ho copiato anche alcune interfaccie tipo i bottoni proprio dal tuo primo link ( www.twcenter.net/forums/showthread.php?p=6605682#post6605682 )
    [Modificato da johnwhile 20/01/2010 21:43]
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 20/01/2010 21:55
    puoi anche leggere una riga intera (readline) e poi la splitti con split()

    lineguides.netsons.org/wordpress/?p=338
    docs.python.org/library/stdtypes.html#str.split

    Se non gli passi nessun parametro, ti spezza una stringa in pezzi compresi tra gli spazi.

    poi ti scorri il vettore e lo converti.

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 20/01/2010 22:08
    Grande quello split mi ha semplificato la vita, anche perchè pensavo che se leggeva spazio o qualcosaltro di simile mi restituiva stringa vuota invece mi restituisce anche gli /t /n ecc...

    Ecco, infatti adesso ho capito dove KnightErrant ha estratto i dati, infatti fà un readline() e poi la stringa viene splittata.
    Successivamente ad ogni diverso caso vengono estratti i valori dell'arrey che si è formato, perchè non capivo proprio il nesso
    [Modificato da johnwhile 20/01/2010 22:18]
3