Write e Read Memory - Dúvidas

    Compartilhe
    avatar
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

    Write e Read Memory - Dúvidas

    Mensagem por Kevin Prestes em Dom 25 Ago 2013, 23:04

    Em MODs CLEO avançados, na maioria das vezes, vejo aqueles Opcodes de "Read" e "Write" Memória (0A8C, 0A8D). E daí queria saber: Pra que eles servem? E como usa-los? Quando eu mexia com a Linguagem GML, usava Comandos semelhantes a esses, mais claro que no GTA, serve pra outra coisa.
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21596
    Reputação : 631
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Write e Read Memory - Dúvidas

    Mensagem por Junior_Djjr em Seg 26 Ago 2013, 00:07

    Em MODs CLEO avançados
    denilson gostoso 

    ...mas entao, acho melhor o LINK/2012 explicar, ele eh mais definitivo na explicação doq eu, e ele tah online rçrç :)


    ____________________
    avatar
    LINK/2012
    Programador - Avançado
    Programador - Avançado

    Título : Veterano
    Mensagens : 7857
    Reputação : 347
    Desde : 03/05/2012

    Re: Write e Read Memory - Dúvidas

    Mensagem por LINK/2012 em Seg 26 Ago 2013, 00:27

    fabio explica


    ____________________
    "Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Write e Read Memory - Dúvidas

    Mensagem por Fabio em Seg 26 Ago 2013, 00:51

    @LINK/2012 escreveu:fabio explica
    kidding

    ok ok

    Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

    Código:
    0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
    0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

    http://en.wikipedia.org/wiki/Portable_Executable
    http://en.wikipedia.org/wiki/Code_segment

    Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

    Vou dar um exemplo bem simples de write memory:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
    0A93: end_custom_thread
    O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
    Exemplo:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    2@ = 5
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
    0A93: end_custom_thread


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'
    avatar
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

    Re: Write e Read Memory - Dúvidas

    Mensagem por Kevin Prestes em Seg 26 Ago 2013, 01:00

    @Junior_Djjr escreveu:
    Em MODs CLEO avançados
    denilson gostoso 

    ...mas entao, acho melhor o LINK/2012 explicar, ele eh mais definitivo na explicação doq eu, e ele tah online rçrç :)
    Sim, MODs CLEO que fazem coisas mais avançadas usam bastantes desses Opcodes
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21596
    Reputação : 631
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Write e Read Memory - Dúvidas

    Mensagem por Junior_Djjr em Seg 26 Ago 2013, 01:07

    http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29

    aqui tem uns endereços de memoria do GTA onde vc pode trabalhar com ações etc

    exemplo:
    Código:
    0xB7014E - [byte] Current Weekday (1 through 7)
    no endereço 0xB7014E no tamanho de 1 byte, fica o dia da semana (retorna numero de 1 a 7)

    escrever e ler endereços nao tem nada de misterioso, soh usar o numero de bytes certos na hora de ler e escrever (ali no "size" do opcode)

    Código:
    byte = 1 byte
    boolean = 1 byte (se usa 1 ou 0 no valor)
    word = 2 bytes
    dword = 4 bytes
    float = 4 bytes (sao numeros com pontos como 1.0 etc)
    qword = 8 bytes


    Sim, MODs CLEO que fazem coisas mais avançadas usam bastantes desses Opcodes
    usar um opcode desses em mods nao quer dizer q eh avançado, isso eh muito mais simples q muitos opcodes...
    oq se mede se eh avançado ou nao um cleo eh ele ao todo, se o cara usar leitura e escritura de memoria para, como eu disse no exemplo, ler o dia da semana do jogo, ate meu primo de 12 anos q nao joga gta sabe fazer coisa avançada kkkk

    e tbm o inverso, muita coisa avançada eh feita tbm sem usa-los .-.


    Última edição por Junior_Djjr em Seg 26 Ago 2013, 01:11, editado 1 vez(es)


    ____________________
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Write e Read Memory - Dúvidas

    Mensagem por Fabio em Seg 26 Ago 2013, 01:09

    Só uma correçãozinha...
    Código:
    dword = 2 bytes
    qword = 4 bytes
    Na verdade é:

    Código:
    word = 2 bytes
    dword = 4
    qword = 8


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21596
    Reputação : 631
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Write e Read Memory - Dúvidas

    Mensagem por Junior_Djjr em Seg 26 Ago 2013, 01:12

    @Fabio escreveu:Só uma correçãozinha...
    Código:
    dword = 2 bytes
    qword = 4 bytes
    Na verdade é:

    Código:
    word = 2 bytes
    dword = 4
    qword = 8
    porra esqueci do word, fui direto ao double word rçrçrç


    ____________________
    avatar
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

    Re: Write e Read Memory - Dúvidas

    Mensagem por Kevin Prestes em Seg 26 Ago 2013, 01:22

    @Fabio escreveu:
    @LINK/2012 escreveu:fabio explica
    kidding

    ok ok

    Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

    Código:
    0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
    0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

    http://en.wikipedia.org/wiki/Portable_Executable
    http://en.wikipedia.org/wiki/Code_segment

    Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

    Vou dar um exemplo bem simples de write memory:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
    0A93: end_custom_thread
    O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
    Exemplo:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    2@ = 5
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
    0A93: end_custom_thread
    Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Write e Read Memory - Dúvidas

    Mensagem por Fabio em Seg 26 Ago 2013, 01:24

    @Kevin Prestes escreveu:
    Spoiler:
    @Fabio escreveu:
    @LINK/2012 escreveu:fabio explica
    kidding

    ok ok

    Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

    Código:
    0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
    0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

    http://en.wikipedia.org/wiki/Portable_Executable
    http://en.wikipedia.org/wiki/Code_segment

    Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

    Vou dar um exemplo bem simples de write memory:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
    0A93: end_custom_thread
    O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
    Exemplo:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    2@ = 5
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
    0A93: end_custom_thread
    Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
    De nada :) 

    Se não entendeu algo, é só perguntar


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'
    avatar
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

    Re: Write e Read Memory - Dúvidas

    Mensagem por Kevin Prestes em Seg 26 Ago 2013, 01:42

    @Junior_Djjr escreveu:http://www.gtamodding.com/index.php?title=Memory_Addresses_%28SA%29

    aqui tem uns endereços de memoria do GTA onde vc pode trabalhar com ações etc

    exemplo:
    Código:
    0xB7014E - [byte] Current Weekday (1 through 7)
    no endereço 0xB7014E no tamanho de 1 byte, fica o dia da semana (retorna numero de 1 a 7)

    escrever e ler endereços nao tem nada de misterioso, soh usar o numero de bytes certos na hora de ler e escrever (ali no "size" do opcode)

    Código:
    byte = 1 byte
    boolean = 1 byte (se usa 1 ou 0 no valor)
    word = 2 bytes
    dword = 4 bytes
    float = 4 bytes (sao numeros com pontos como 1.0 etc)
    qword = 8 bytes


    Sim, MODs CLEO que fazem coisas mais avançadas usam bastantes desses Opcodes
    usar um opcode desses em mods nao quer dizer q eh avançado, isso eh muito mais simples q muitos opcodes...
    oq se mede se eh avançado ou nao um cleo eh ele ao todo, se o cara usar leitura e escritura de memoria para, como eu disse no exemplo, ler o dia da semana do jogo, ate meu primo de 12 anos q nao joga gta sabe fazer coisa avançada kkkk

    e tbm o inverso, muita coisa avançada eh feita tbm sem usa-los .-.
    Ok vlw pela Ajuda :) 
    avatar
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

    Re: Write e Read Memory - Dúvidas

    Mensagem por Kevin Prestes em Seg 26 Ago 2013, 01:44

    @Fabio escreveu:
    @Kevin Prestes escreveu:
    Spoiler:

    @Fabio escreveu:
    @LINK/2012 escreveu:fabio explica
    kidding

    ok ok

    Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

    Código:
    0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
    0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

    http://en.wikipedia.org/wiki/Portable_Executable
    http://en.wikipedia.org/wiki/Code_segment

    Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

    Vou dar um exemplo bem simples de write memory:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
    0A93: end_custom_thread
    O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
    Exemplo:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    2@ = 5
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
    0A93: end_custom_thread
    Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
    De nada :) 

    Se não entendeu algo, é só perguntar
    Entendi tudo sim :) Porque fazem coisas praticamente iguais aos do GML
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Write e Read Memory - Dúvidas

    Mensagem por Fabio em Seg 26 Ago 2013, 03:08

    @Kevin Prestes escreveu:
    @Fabio escreveu:
    @Kevin Prestes escreveu:
    Spoiler:

    @Fabio escreveu:
    @LINK/2012 escreveu:fabio explica
    kidding

    ok ok

    Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

    Código:
    0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
    0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

    http://en.wikipedia.org/wiki/Portable_Executable
    http://en.wikipedia.org/wiki/Code_segment

    Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

    Vou dar um exemplo bem simples de write memory:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
    0A93: end_custom_thread
    O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
    Exemplo:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    2@ = 5
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
    0A93: end_custom_thread
    Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
    De nada :) 

    Se não entendeu algo, é só perguntar
    Entendi tudo sim :) Porque fazem coisas praticamente iguais aos do GML
    Como é que é no GML? :) 


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'
    avatar
    LINK/2012
    Programador - Avançado
    Programador - Avançado

    Título : Veterano
    Mensagens : 7857
    Reputação : 347
    Desde : 03/05/2012

    Re: Write e Read Memory - Dúvidas

    Mensagem por LINK/2012 em Seg 26 Ago 2013, 12:07

    um lixo


    ____________________
    "Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Write e Read Memory - Dúvidas

    Mensagem por Fabio em Seg 26 Ago 2013, 13:32

    @LINK/2012 escreveu:um lixo
    Por que? pokerface


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'
    avatar
    Kevin Prestes
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 1891
    Reputação : 18
    Desde : 30/05/2013
    Localização : Estância Velha - RS

    Re: Write e Read Memory - Dúvidas

    Mensagem por Kevin Prestes em Seg 26 Ago 2013, 15:58

    @Fabio escreveu:
    @Kevin Prestes escreveu:
    @Fabio escreveu:
    @Kevin Prestes escreveu:
    Spoiler:

    @Fabio escreveu:
    @LINK/2012 escreveu:fabio explica
    kidding

    ok ok

    Bom, como o próprio nome diz, são opcodes pra escrever ou ler a memoria do jogo

    Código:
    0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
    0xC0BC15 é o endereço escrito em hexadecimal, size é o tamanho (em bytes) e value é o valor ( Oh Rly? ) virtual protect é pra poder escrever em areas protegidas (areas de código assembly, ou seja, a seção .text que tem os códigos do executável).

    http://en.wikipedia.org/wiki/Portable_Executable
    http://en.wikipedia.org/wiki/Code_segment

    Existem alguns opcodes que pegam o endereço de coisas especificas do script, exemplo: 0AC7: 0@ = var 1@ offset

    Vou dar um exemplo bem simples de write memory:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 1
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8C: write_memory 0@ size 4 value 10 virtual_protect 0 // Escrevemos o valor 10 no endereço da variavel 1@ que pegamos com o 0AC7 com o tamanho 4 bytes que é o tamanho das variaveis de SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 1@" 1@ // vai ser mostrado o número 10
    0A93: end_custom_thread
    O read memory funciona da mesma forma, só que ao invés de escrever ele lê a memoria indicada e coloca o valor na variavel especificada.
    Exemplo:
    Código:

    {$CLEO}
    wait 5000 // só pra dar um tempo entre o fade inicial e a text box que vamos querer mostrar na tela
    2@ = 5
    1@ = 1
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 5
    wait 1000 // apenas pra conseguirmos visualizar ambas as text boxes
    0AC7: 0@ = var 1@ offset
    0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0 // lemos o endereço de memoria que armazenamos na variavel 0@ referente ao offset global da variavel 1@ com tamanho de leitura 4 que é o tamanho das variaveis SCM/CLEO
    0ACE: show_formatted_text_box "This is %d value of variable 2@" 2@ // vai ser mostrado o número 1
    0A93: end_custom_thread
    Ok! Muito obrigado pelo Ajuda Fábio (Denovo badpokerface )
    De nada :) 

    Se não entendeu algo, é só perguntar
    Entendi tudo sim :) Porque fazem coisas praticamente iguais aos do GML
    Como é que é no GML? :) 
    A tipo eu quero Criar uma Senha pra pode Iniciar o Meu Jogo. Daí eu Escrevo uma Senha, então chamo o Comando de Read, que vai ler a minha Senha. Daí o Comando Write, vai Tipo, Escrever minha Senha na Memória do Jogo. Daí quando Iniciar o Jogo, vai Pedia a Senha. Eu vou digita-la, então o Read vai lá na Memória do Jogo e vê se Ambas são Iguais. Se sim, o Jogo Inicia, se não, pede a Senha Denovo.

    EDIT:
    @LINK/2012 escreveu:um lixo
    Porque? ²

    Conteúdo patrocinado

    Re: Write e Read Memory - Dúvidas

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui 22 Jun 2017, 08:59