• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Tharis

Addresses da Memória

22 mensagens neste tópico

Tenho uma lista de addresses da memória e gostaria de saber se estas conversões tão certas ou como posso convertê-las de modo a que as possa usar em Python.

00B08A6A

0CD22244

Por exemplo. Alguém me explica como converto isto pa usar em Python? Sei que se pode usar em VB assim como está com uma função CallWriteaLong ou coisa assim

Cumps

Tharis

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usar endereços! Não estou a ver. Os endereços deixam de ser validos quando o programa acaba e como tal não vale a pena guarda-los.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usar endereços! Não estou a ver. Os endereços deixam de ser validos quando o programa acaba e como tal não vale a pena guarda-los.

Não me parece que seja isso que ele quer fazer. Imagina o programa X e Y. O programa X usa os endereços de 0x10 até 0xf0, e ele quer que o programa Y vá ler um dos endereços do programa X...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Percebo pouco de Python mas os processos correm todos em endereços de memoria virtual, logo deverá ser necessário alguma forma de partilha de memoria entre processos.

Python tem pipes como C?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já para não falar que um programa não pode simplesmente aceder à memória de outro "porque sim"..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já para não falar que um programa não pode simplesmente aceder à memória de outro "porque sim"..

Poder pode, não deve é fazê-lo.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se um programa tentar escrever em memória que não lhe diz respeito recebe um segmentation fault por parte do sistema operativo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A não ser que seja memória partilhada :D

Por exemplo, escrever directamente sobre a memória correspondente ao buffer da gráfica.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

So much l33t stuff, mas nada que me ajude. O que eu quero é o que o tirácio disse:

Não me parece que seja isso que ele quer fazer. Imagina o programa X e Y. O programa X usa os endereços de 0x10 até 0xf0, e ele quer que o programa Y vá ler um dos endereços do programa X...

Agora como converto de 00BUBUBU para 0xblahblah

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não é possível com linguagens de alto nível. Com assembly consegues, mas de qualquer forma nos dias que correm não vais lá por aí.

Se queres partilhar memória/dados/tabelas etc, crias um pipe, socket, etc. Não encontro nenhuma situação nos dias que correm em que seja possível usar endereços de memória. Até porque um programa não consegue escolher onde a sua memória é alocada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vi programas feitos em VB a usar a tal função que se tinha de pôr qual o nome do programa e o endereço, igual ao que está lá em cima.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como eu disse, isso deve ser memória partilhada.

Uma pesquisa rápida no google para python o primeiro link deu isto. Vê se é isso que queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como eu disse, isso deve ser memória partilhada.

Uma pesquisa rápida no google para python o primeiro link deu isto. Vê se é isso que queres.

Sinceramente, fiquei um pouco à nora com o que lá está. É que nem comments tem a explicar... :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É assim, isso foi a primeira coisa que surgiu no Google sobre partilha de memória em Python.

Basicamente isso são 2 programas em Python. 1 para criar memória partilhada e outro para aceder à memoria partilhada.

Para leres mais sobre memória partilhada podes começar pela wikipedia. Mas isso é só do ponto de vista teórico. Como disse antes, vais ao google e procura por casos em Python, mas não deve haver muitos. Memória partilhada é algo que não é muito usado no dia a dia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para leres mais sobre memória partilhada podes começar pela wikipedia. Mas isso é só do ponto de vista teórico. Como disse antes, vais ao google e procura por casos em Python, mas não deve haver muitos. Memória partilhada é algo que não é muito usado no dia a dia.

Memória partilhada é extremamente usado nos dias que correm.. mas não acedida explicatamente. Volto a repetir: pipes, sockets, é por aí que tens de te orientar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

So much l33t stuff, mas nada que me ajude. O que eu quero é o que o tirácio disse:

Agora como converto de 00BUBUBU para 0xblahblah

Pelo que eu percebi que queres, eu que já programei edições de memória em jogos, penso que te estejas a referir à diferente formatação que os endereços se encontram.

Por exemplo já vi endereços assim: 00B288D0 (em VB.Net) e endereços assim: 0xB288D0 (em C++).

Era a isso que te referias?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

0xB288D0 = 0x00B288D0, a diferença do vb.net e o c++ é mesmo o uso do 0x para indicar um número hexadecimal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

0xB288D0 = 0x00B288D0, a diferença do vb.net e o c++ é mesmo o uso do 0x para indicar um número hexadecimal.

Foi o que percebi numa recente pesquisa...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

0xB288D0 = 0x00B288D0, a diferença do vb.net e o c++ é mesmo o uso do 0x para indicar um número hexadecimal.

apesar de no c++ não ser obrigatório o uso dos 00 depois do 0x, podendo ficar algo como 0xB288D0 em vez de 0x00B288D0, mas funcionam os dois.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

apesar de no c++ não ser obrigatório o uso dos 00 depois do 0x, podendo ficar algo como 0xB288D0 em vez de 0x00B288D0, mas funcionam os dois.

Porque achas que eu disse que era =? Duh. :P
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque achas que eu disse que era =? Duh. :P

LOL esquece nem sequer reparei no simbolo igual xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora