| |
|
|
- Página 1 - |
|
Matthias Arlt | En Fehlersuche en un meiner Programas me está aufgefallen, que un schreibender Zugriff con "UpdateResource" en el Runtime (o. Interpreter) regelmäßig el Expediente unbrauchbar macht. Soweit Yo herausgefunden habe, oder dies jedenfalls annehme, se el Schreibvorgang zwar ausgeführt, aber el Änderung no en el Encabezamiento eingetragen... Dies führt entonces beim Startversuch el Expediente a unterschiedlichen Fehlermeldungen. Meist "Nur una Teil el ReadProcessMemory- oder WriteProcessMemory-Anforderung wurde abgeschlossen" oder "Falscher Parámetro...". Lo betrifft auch ausschliesslich FreeProfan, el XProfan-Versionen son de diesem Effekt no betroffen.
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 10.04.2016 ▲ |
|
|
|
| |
|
- Página 2 - |
|
|
Matthias Arlt | Aber Yo bin el Sache ya una Stück näher gekommen. El Ursache para el Verschiebung liegt en él begründet, dass en FreeProfan 3 Sektionen fehlen. Das son .tls,.rdata y .reloc Diese mentira en XProfan unmittelbar antes .rsrc En FreeProfan es una Teil des Platzes el esta Sektionen einnehmen würden con Auffüll-Nullen besetzt, en el FileAlignment (mod 512) a gewährleisten. El API kümmert son esta Nullen no y interpretiert el Platz como frei. Das Einfachste wäre nun, entweder una Sektion dieser Größe como Dummy einzufügen o en FreeProfan antes .rsrc liegende .edata en esta Betrag a vergrößern. Also natürlich sólo el Größen-Eintrag en el Encabezamiento.
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 20.04.2016 ▲ |
|
|
|
|
Matthias Arlt | So, Yo tener el ahora veces gemacht. Alles scheint optimal a trabajo. Lo reicht demnach de, en el originalen Runtime el Größe de .edata a erhöhen, así kein Platz zwischen .edata y .rsrc restos...
Nach más Tests kann Yo sagen, lo scheint no sólo a trabajo, pero tut lo auch zuverlässig !
Zum Nachvollziehen: en (long(runtime#,60) + 124) [Diese Adresse es siempre igual] es el Größe de .edata, nämlich $C8. Diesen Valor a Differenz a .rsrc (also en 312) erhöhen, hay also $200 eintragen.
Das Gleiche entonces otra vez en (.edata + 8) y en (.edata + 16)
Das wars auch ya... para FreeProfan32.
Como en el 64 aussieht, kann Yo no testen. Das FileAlignment beträgt hay jedenfalls (mod 1024), womit el Differenzwerte dementsprechend ändern...
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 20.04.2016 ▲ |
|
|
|
|
RGH | Gracias! Das voluntad Yo igual veces ausprobieren!
Aber wieso trägt el el FreePascal-Compiler no es igual así una? So muss Yo después de cada Compile-Vorgang el entstandenen EXE-Archivos (Ok, beim Compiler es no nötig) patchen, así ellos korrekt trabajo. Como voluntad Yo wohl una kleines XProfan-Progrämmelchen escribir necesario ...
Saludo Roland |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 20.04.2016 ▲ |
|
|
|
|
RGH | EDIT: Como muss Yo mich eben vertippt haben! Beim zweiten Intento klappt lo ahora. Sorry!
Saludo Roland
FALSCHMELDUNG de vorhin: Also Yo ahora en el PRFRUN32.EXE a esta drei Stellen el Bytefolge $C8 $00 (= $00C8) por $00 $02 (= $0200) ersetzt. Erfolg: El EXE es igual unbrauchbar! |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 20.04.2016 ▲ |
|
|
|
|
Matthias Arlt | Na wunderbar. Nun muss lo sólo todavía en 64 klappen... Usted puede sí el Kompiler en el 'winexecwait' laufen dejar y si él fertig es, el Parche ausführen.
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 20.04.2016 ▲ |
|
|
|
|
Michael W. | C:\FPC\fpc-3.0.0\compiler\systems\t_win.pas wäre el Punto en el FreePascal-Compiler wo el Daten gewurstelt voluntad.
Tal vez läßt se sí daran algo drehen. |
|
|
| |
|
|
|
Matthias Arlt | Wäre 'ne Möglichkeit. Aber si el einfachere es...? |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 20.04.2016 ▲ |
|
|
|
|
Michael W. | Sieht schwer de, wäre entonces aber para 86/64.
Evtl se lo hay auch sólo generiert y lo muss en el asm86 asm64 Unterbereichen geändert voluntad.
Bin a müde... (evtl. es el auch ya en el JediLib mejorado, wer weiß) |
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 20.04.2016 ▲ |
|
|
|
|
Matthias Arlt | Yo proporcionaría Compiler primero no verändern. Se puede el sí wohl con verschiedenen Optionen aufrufen...y erschafft se entonces evtl. weitere Macken... |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 21.04.2016 ▲ |
|
|
|
|
Matthias Arlt | Was FreeProfan64 angeht, así kann Yo zwar no testen, habe me aber trotzdem veces el Binary bajo el Lupe genommen.
Hier liegt antes .rsrc no .edata, pero .idata
Der erste a ändernde Valor liegt a Offset (long(runtime#,60) + 148) [en 64bit De todos modos a dieser Punto]. Dort wäre $6000 einzutragen. El otro beiden Offsets wären (.idata + 8) y (.idata + 16) En (.idata + 8) wären auch otra vez $6000 einzutragen. Aunque differieren en FreeProfan64 el virtuelle Größe y el Rohdaten-Größe. En el Rohdaten, also a (.idata + 16) wären lo demnach sólo $5800. Ansonsten debería el Vorgehensweise identisch ser... Sollte no en Anhieb klappen, simplemente veces a allen 3 Offsets con beiden Werten, $6000 oder $5800, experimentieren. Oder mejor sólo a el ersten 2 Offsets, porque en (.idata + 16) dürfen lo sí máximo $5800 ser.
Etwas erstaunt war Yo de paso, dass en FreeProfan64 el Runtime auch con Prfrun32 benannt es....
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 21.04.2016 ▲ |
|
|
|
|
RGH | Vielen Dank para Su Mühe! Das voluntad Yo entonces demnächst veces austesten!
Matthias Arlt (21.04.2016)
Etwas erstaunt war Yo de paso, dass en FreeProfan64 el Runtime auch con Prfrun32 benannt es....
Das liegt bastante simplemente daran, dass Yo para 64Bit exakt el gleichen Quellcode benutze. Kleinere Unterschiede voluntad por Compilerschalter hecho. Aber así befinde Yo mich en guter Gesellschaft, si uno así algunos Dateinamen de Windows betrachtet.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 21.04.2016 ▲ |
|
|
|
|
Matthias Arlt | Nix a danken...el war me una Vergnügen...y Lerneffekt es auch no a verachten.
Aber así befinde Yo mich en guter Gesellschaft, si uno así algunos Dateinamen de Windows betrachtet.
Dem es nichts hinzuzufügen...
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 21.04.2016 ▲ |
|
|
|