1

^^

est il possible, en C sous windows, d'avoir un pointeur sur l'executable courant (chargé en ram) ?

j'ai declaré une chaine ds mon prog pour y mettre les scores, et je veux sauver directement dedans,
vu que je ne c pas comment dire au compilo met moi la chaine a la fin de l'exe, je doit la trouver ds l'exe pour la modifier,
g pas envi de faire 15 millions de fread pour trouver le flag, ni de mettre l'offset de la chaine en dur (si qq recompille ca marchera ptet pas smile)
au pire je charge tt mon exe (70k c pas la mort) et je cherche dedans, mais windows a déjà du le faire a ma place alors .. ^^

mm question sous linux, au cas ou je porte mon prog plus tard ^^
et la le mec il le pécho par le bras et il lui dit '

2

Dans le genre hack tu peux toujours mettre un marqueur avant tes scores, chercher via un script l'offset juste après la compilation (donc une fois pour toutes), et recompiler avec l'offset mis à jour (et puis tu peux relancer le script pour vérifier que le compilo fait pas n'importe quoi). Si tu compiles avec un makefile, ça se fait très bien smile Ca a l'avantage de marcher aussi sous Linux (si tu veux être vraiment portable, fais gaffe parce que certains unixoïdes [genre Cygwin] mettent des suffixes aux fichiers exécutables, donc même si ton prog a été appelé avec ./prog, fopen("prog") va t'envoyer chier, il faut faire par exemple fopen("prog.exe") ^^)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

oui je v faire comme ca, c plus simple, merci smile
et la le mec il le pécho par le bras et il lui dit '

4

g ecrit le patcheur, c nikel mais il me reste un probleme ^^
j'avais declaré un tableau de 2 int , le premier element etait un flag, et le second l'offset vers le tableau des scores
le patcheur cherche le flag, le trouve, et ecrit 4 octets plus loin l'offset vers les scores, ca marche

mais ds mon programme, le 2eme element du tableau contient 0 et non l'offset sad
le compilo peut il separer comme ca un tableau ?

pour contourner, au lieu de mettre un tableau de 2 int g mis 8 char ^^ mais la nouveau probleme :/
le compilo ma mis le tableau de char aligné sur 2 octet ^^
ce qui fait que le patcheur ne trouve pas le flag, et que ca plantera a la lecture du int contenu ds les 4 dernier char de ma chaine ^^

donc ma question est, comment forcer l'alignement de ma chaine sur 4 octet ?
et la le mec il le pécho par le bras et il lui dit '

5

j'ai trouvé #pragma pack pour forcer l'alignement mais visiblement ca ne marche que pour les structures :/
et la le mec il le pécho par le bras et il lui dit '

6

Bah tu peux très bien faire une structure à deux éléments... Accessoirement, déclare le tableau comme étant "volatile", au cas où le compilo ferait des optimisations globales ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

7

Si tu compiles avec GCC, tu as __attribute__((aligned(4))) qui marche sur n'importe quel type de données.
GCC pour Windows -> http://www.mingw.org.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

tripaf

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

__attribute__((aligned(4))) marche nikel merci smile
je connaissais pas volatile, je testerais ac demain ^^

par contre encore un probleme lol j'ai une erreur a l'ouverture de mon exe en ecriture depuis lui meme :'(
g essayé de le patcher pendans que le prog tournais, l'ouverture ne marche pas non plus, donc je ne peut pas faire un autre exe inclu au 1er, et le mettant a jour ^^"

ce que je veut faire est impossible sous windows ?
et la le mec il le pécho par le bras et il lui dit '

10

Je crois que Windows verouille les executables charges en memoire, mais je peux me tromper.

11

Je quitte ce forum, ainsi qu'Internet en général.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

12

finalement j'utilise un fichier externe sorry

mprotect avait l'air d'etre la merde a utiliser pour un fichier, et g assez galéré ds le vent hier ^^'
et la le mec il le pécho par le bras et il lui dit '

13

Je quitte ce forum, ainsi qu'Internet en général.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

14

oui c pour des données, nom et scores des 3 meilleurs joueurs ^^
merci pour le truc de compiller en librairie et de modifier celle ci au lieu de l'exe, mais je ne veut qu'un fichier ^^

dailleur, comment vraiment linker mon prog ac sdl et son mixer, pour ne pas avoir besoin des dll ?
et la le mec il le pécho par le bras et il lui dit '

15

Sous windows pour pouvoir modifier l'exécutable il ne faut pas qu'il soit en train de s'exécuter.
Après il existe quelques hacks qui permettent de contourner cette limitation temporairement, en démappant l'exécutable temporairement.

Mais c'est très moche, demande de l'assembleur et c'est bien casse-gueule.

16

Je quitte ce forum, ainsi qu'Internet en général.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

17

Beh à partir du moment où les sources sont dispos, c'est très simple de faire un linkage statique (même si je trouve la pratique immonde sauf but bien précis (pour mettre un prog dans un chroot ou pour des composants qui doivent marcher même quand /usr est pas monté) ).

Sous win tu vas déjà avoir un problème avec les API windows, qui sont importés depuis les DLL du système (donc linkage 100% statique => dtc).

18

De toute façon, linker statiquement une DLL qui fait partie du système d'exploitation, ce n'est pas une bonne idée. Le linkage statique, c'est fait pour les librairies qui ne font pas partie du système d'exploitation.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

19

je veut juste ne plus avoir besoin de sdl, le reste si c déjà present sur tt les pc c bon smile

j'ai transformé les .dll en .lib en utilisant dll to lib (http://www.binary-soft.com/dll2lib/dll2lib.htm)
mais j'ai du faire nimporte koi ca marche pas :/

j'essairais de recompiller entierement sdl
et la le mec il le pécho par le bras et il lui dit '

20

Tu dois compiler entièrement SDL si tu veux le linker statiquement sous Windows.
./configure --disable-shared --enable-static
make

devrait suffir (sous MSYS).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

21

ok merci je v dl msys smile

si vous voulez tester une beta (ac les dll tongue)
http://procvor.free.fr/falldown.x86.b3.exe
et la le mec il le pécho par le bras et il lui dit '

22

Je quitte ce forum, ainsi qu'Internet en général.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.

23

Avec MinGW, tu peux linker les DLLs directement, sans librairie d'importation.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité