Native Image (*.ni.dll) fájban egy adott JNZ utasítást hogyan tudnék megpatch-elni az eredeti fájlban?
Van egy program, ami használ egy dll fájlt. Szeretném módosítani a program futását, ezért az OllyDbg használatával megtaláltam egy bizonyos JNZ utasítást, amit NOP-ra át kellene írni.
A gondom az, hogy ez az utasítás nem az eredeti *.dll-ben van, hanem egy *.ni.dll-ben, vagyis egy native image-ben.
Az lenne a kérdésem, hogy ilyen esetben hogyan tudnám hex editorral megpatch-elni az eredeti dll-t, hogy a kiválasztott JNZ megváltozzon?
Olvasgattam bizonyos CIL utasításokról, amik az eredeti DLL-ből futásidőben létrehozzák a tényleges kódot, hogy elvileg ezeket a CIL utasításokat kellene módosítani. De ezt hogyan? Hogy találom meg, melyiket kell átírni és hogyan kell átírni?
Elképzelhető, hogy nem lehet, mert önellenőrzést hajt végre a .dll
Ha lehet, akkor ki kell nézni a NOP gépi kódját (általában zéró (00h)) és azt beírni a JNZ helyett.
x86-on a NOP opcode-ja 0x90, ezt kell beütni. De arra figyelj, hogy két féle jnz van:
Short jump: 75 cb
Near jump: 0f 85 cw
Mindkettönél az argumentumát is ki kell patchelni(a cb az 1 byte, a cw az 2 byte)
Olvasgasd az Intel® 64 and IA-32 Architectures Software Developer’s Manual-t
Köszönöm a válaszokat, de sajnos félreértettétek a kérdésemet.
Ha csak simán, hagyományos módon meg kellene patchelni az adott utasítás byte-ját hex editorban, az nem lenne gond. A gondom az, hogy debuggerrel a gépi kódú, assemler utasítást találtam meg (JNZ), de ez csak ki van csomagolva futásidőben a CIL leíró nyelvből.
Azóta olvasgattam, hogy ez tipikus megoldás dotnet alatt írt programoknál.
Az eredeti dll-t visszafejtve nem az assembler utasításokat látom, hanem a CIL (intermediate language) nyelven írt utasításokat. Ilyeneket, hogy btrue, bfalse, callvirt, ldarg, stb. A kérdésem, hogy ha az OllyDbg debuggerben, a már kicsomagolt assembler utasítások között megtaláltam a keresett JNZ-t, azt hogyan tudom visszakeresni, hogy az eredeti dll fájlban melyik vonatkozó CIL utasítást kell NOP-ra tennem?
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!