salam! Mən bilmək istəyirəmki exe faylını açıb içərisində dəyişiklik etmək üçün hansı proqram lazımdı. Və ya bunu başqa cür necə etmək mümkündür.
salam! Mən bilmək istəyirəmki exe faylını açıb içərisində dəyişiklik etmək üçün hansı proqram lazımdı. Və ya bunu başqa cür necə etmək mümkündür.
Verilmiş cavablar və yazılan şərhlər (2 cavab var)
2
Bu suala artıq cavab verilib
Exe Faylının açılması
1
Exe faylı daha dəqiq desək .exe sonluğu ilə bitən fayllara windows sistemlərində icraolunabilən fayllar – yəni proqram faylları işarə olunur. Əslində faylın adının hansı sonluqla bitməsinin bir əhəmiyyəti yoxdur, bu sadəcə işarəetmədir. Əsas ikili faylın formatıdır. Proqramın ikili faylı kompilyator tərəfindən yaradılır və özündə ikili formada prosessor instruksiyaları, məlumatlar, simvollar cədvəli, proqram başlığı və digər məlumatlar saxlayır. Proqram fayllarının daxili strukturunu örgənmək və orada istənilən dəyişili eləmək mümkündür. Bunun üçün assembler dili, prosessor arxitekturası və müvafiq əməliyyatlar sistemini bilmək tələb olunur.
GNU/Linux sistemlərində proqram faylları ilə işləmək üçün gdb, obdump, strip, nm, hexdump v.s. proqramlardan istifadə olunur. Misal üçün prog1 proqramının hansı hissələrdən təşkil olunduğunu örgənmək üçün objdump -h prog1 əmrini daxil edə bilərik.
Sadə bir init proqramı üzərində test apara bilərik.
[ferid@fedora tmp]$ objdump -h init
init: file format elf64-x86-64
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000027 00000000004000b0 00000000004000b0 000000b0 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000010 00000000006000d8 00000000006000d8 000000d8 2**2
CONTENTS, ALLOC, LOAD, DATA
[ferid@fedora tmp]$
Proqramın .text hissəsinə (instruksiyalar) baxmaq istəsək aşağıdakı əmri daxil etməliyik:
[ferid@fedora tmp]$ objdump -d init
init: file format elf64-x86-64
Disassembly of section .text:
00000000004000b0 :
4000b0: 48 c7 c0 04 00 00 00 mov $0x4,%rax
4000b7: 48 c7 c3 01 00 00 00 mov $0x1,%rbx
4000be: 48 c7 c1 d8 00 60 00 mov $0x6000d8,%rcx
4000c5: 48 c7 c2 0e 00 00 00 mov $0xe,%rdx
4000cc: cd 80 int $0x80
4000ce: 48 c7 c0 01 00 00 00 mov $0x1,%rax
4000d5: cd 80 int $0x80
[ferid@fedora tmp]$
Qeyd eliyim ki, bu sadə bir proqram idi, hansı ki icra edəndə ekranda salam dunya sətrin çap edir.
[ferid@fedora tmp]$ ./init
Salam dunya
[ferid@fedora tmp]$
Bu proqramların Windows versiyası da olmalıdır, amma windowsda əsas sazlama proqramların hansı olduğunu deyə bilmərəm, MS Visual Studionun da sazlama (debugger) proqramı var.
GNU/Linux proqramlarının daxili strukturu barədə ətraflı məlumatı 64-bit ELF Object File Specification sənədindən və Professional Linux Kernel Architecture kitabının 4-cü paraqrafından Vir tual Process Memory əldə edə bilərsən.
Sual verin
Cavab verin