Page 2 sur 4
Publié : mar. 18/sept./2007 16:01
par Mytic
J’ai trouvé une méthode pour contourner ça (méthode de bricoleur)
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_LeftControl) Or KeyboardPushed(#PB_Key_RightControl)
cop$ = GetClipboardText()
SetClipboardText(cop$)
EndIf
If (KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_V)) Or (KeyboardPushed(#PB_Key_RightControl) And KeyboardPushed(#PB_Key_V))
cop$ = GetClipboardText()
EndIf
Publié : mar. 18/sept./2007 18:32
par Mytic
J’ai ajouté des menus à l’éditeur, et corrigé le bug du Copier/Coller.
La nouvelle version est téléchargeable sur le site.
C’est la version 0.2 beta 3.
http://proxs.new.fr/

Publié : mar. 18/sept./2007 18:54
par venom
ha!!!! je je préfère de loin cette interface la plus claire et plus connu des logiciels de nos jours

.
@++
Publié : mar. 18/sept./2007 22:15
par Backup
ok ! maintenant ça marche !!
presque !!
en effet a partir de l'editeur si je charge le shootemup de demo
j'apuis sur F5 , et j'attends, j'attends j'attends j'attends j'attends j'attends
toujours pas de jeux qui se lance !!
je decide de quitter par Ctrl+alt+Del , et la , bisard, le jeu decide de se lancer ....
(je vais vérifier un truc , temps que j'y pense... (c'est peut etre mon Firewall qui bloque , mais je ne vois pas poiurquoi...enfin je vais voir ça ...))
ben non !! c'est pas le firewall
c'est curieux, ça le fait seulement au premier lancement, par la suite si je relance, il demarre bien a chaque fois !!

Publié : mar. 18/sept./2007 22:24
par Mytic
@Dobro
Est-ce que t’as Kaspersky ?
Si oui ! , ben… j’ai remarqué que le processus avp.exe de Kaspersky bloquer parfois l’exécution du programme au premier lancement et tourné à 99% !!(Mais que rarement)
Je pense que Kaspersky n’aime pas trop les liaisons entre programmes ?!
Car l’Editeur crée une liaison avec le noyau pour lui envoyer des données.
Sinon, ça fait partie des mystères de PureBasic.

Publié : mar. 18/sept./2007 22:24
par Backup
Publié : mar. 18/sept./2007 22:25
par Mytic
OK

Publié : mar. 18/sept./2007 22:26
par Backup
faudra que tu m'explique en detail comment tu peux "compiller" un prg

Publié : mar. 18/sept./2007 22:33
par Mytic
Dobro a écrit :faudra que tu m'explique en detail comment tu peux "compiller" un prg

Techniquement ce n’est pas de la vraie compilation que je fais !
En gros le compilateur agi comme cela :
-Il charge le noyau
-Le divise en 3 parties.
-la partie d’interprétation reste intacte
-la partie icône est remplacée par une icône.
-après l’icône le code taper par l’utilisateur est crypter et codé puis injecté.
-injection des données Qui concernes le code (taille, type de formatage, langue, etc…) et la clef de cryptage elle-même cryptée.
-Assemblage en mémoire.
-Création de l’exécutable.

Publié : mar. 18/sept./2007 22:40
par Backup
Mytic a écrit :Dobro a écrit :faudra que tu m'explique en detail comment tu peux "compiller" un prg

Techniquement ce n’est pas de la vraie compilation que je fais !
En gros le compilateur agi comme cela :
-Il charge le noyau
-Le divise en 3 parties.
-la partie d’interprétation reste intacte
-la partie icône est remplacée par une icône.
-après l’icône le code taper par l’utilisateur est crypter et codé puis injecté.
-injection des données Qui concernes le code (taille, type de formatage, langue, etc…) et la clef de cryptage elle-même cryptée.
-Assemblage en mémoire.
-Création de l’exécutable.

hum ! je comprends
tu reprend dans le code "compilé" (exe) l'interpreteur auquel tu injecte (en zone data ?) le prg "Proxs" , mais cette interpreteur saute dans la zone injecté...
tu as crée le principe tout seul ou bien a tu utilisé un code du forum anglais, ou autre ?? si oui lequel Svp

??
serai interressé pour reprendre le principe avec mon pureGolo
(a voir ... )
Publié : mar. 18/sept./2007 22:43
par Mytic
@Dobro
Ben…
Je ne sais pas si cette méthode existe ?!
Mais l’idée et la façon de procéder viennent de moi.
Publié : mar. 18/sept./2007 22:45
par Backup
Mytic a écrit :@Dobro
Ben…
Je ne sais pas si cette méthode existe ?!
Mais l’idée et la façon de procéder viennent de moi.
chapeau bas !!
j'ai vu des codes concernant l'injection sur le forum anglais, c'est pour ça que j'ai pensé que tu t'etais inspiré
Bravo encore !!
je vais reflechir a la chose dans mon coin, c'est comme ça que j'apprends le mieux
Merci ...
ceci a du t'aider , je pense
http://www.purebasic.fr/french/viewtopi ... =injection
Publié : mar. 18/sept./2007 22:47
par Mytic
Je vais essayer de retirer la partie de compilation de mon programme pour que je la post !
Comme ça, elle te donnera des idées pour ton programme.
Publié : mar. 18/sept./2007 22:58
par Backup
Merci
utilise tu
WriteProcessMemory pour l'injection
BOOL WINAPI WriteProcessMemory(
__in HANDLE hProcess,
__in LPVOID lpBaseAddress,
__in LPCVOID lpBuffer,
__in SIZE_T nSize,
__out SIZE_T* lpNumberOfBytesWritten
);
Parameters
hProcess
A handle to the process memory to be modified. The handle must have PROCESS_VM_WRITE and PROCESS_VM_OPERATION access to the process.
lpBaseAddress
A pointer to the base address in the specified process to which data is written. Before data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for write access, and if it is not accessible, the function fails.
lpBuffer
A pointer to the buffer that contains data to be written in the address space of the specified process.
nSize
The number of bytes to be written to the specified process.
lpNumberOfBytesWritten
A pointer to a variable that receives the number of bytes transferred into the specified process. This parameter is optional. If lpNumberOfBytesWritten is NULL, the parameter is ignored.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError. The function fails if the requested write operation crosses into an area of the process that is inaccessible.
Remarks
WriteProcessMemory copies the data from the specified buffer in the current process to the address range of the specified process. Any process that has a handle with PROCESS_VM_WRITE and PROCESS_VM_OPERATION access to the process to be written to can call the function. Typically but not always, the process with address space that is being written to is being debugged.
The entire area to be written to must be accessible, and if it is not accessible, the function fails.
et
ReadProcessMemory ???? pour l'interpretation ??
BOOL WINAPI ReadProcessMemory(
__in HANDLE hProcess,
__in LPCVOID lpBaseAddress,
__out LPVOID lpBuffer,
__in SIZE_T nSize,
__out SIZE_T* lpNumberOfBytesRead
);
Parameters
hProcess
A handle to the process with memory that is being read. The handle must have PROCESS_VM_READ access to the process.
lpBaseAddress
A pointer to the base address in the specified process from which to read. Before any data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for read access, and if it is not accessible the function fails.
lpBuffer
A pointer to a buffer that receives the contents from the address space of the specified process.
nSize
The number of bytes to be read from the specified process.
lpNumberOfBytesRead
A pointer to a variable that receives the number of bytes transferred into the specified buffer. If lpNumberOfBytesRead is NULL, the parameter is ignored.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError.
The function fails if the requested read operation crosses into an area of the process that is inaccessible.
Remarks
ReadProcessMemory copies the data in the specified address range from the address space of the specified process into the specified buffer of the current process. Any process that has a handle with PROCESS_VM_READ access can call the function. Typically but not always, the process with address space that is being written to is being debugged.
The entire area to be read must be accessible, and if it is not accessible, the function fails.

Publié : mar. 18/sept./2007 23:01
par Mytic
@Non ! Pourquoi ? Je ne vois pas l’utilité.
Une variable c’est aussi une mémoire, Donc pourquoi se compliquer la vie alors qu’on peut faire simple.
[Edit] Quand tu dis injection, tu parles de la compilation ou l’exécution ?