Debugger
-
Upload
howard-chang -
Category
Engineering
-
view
26 -
download
3
Transcript of Debugger
![Page 1: Debugger](https://reader036.fdocuments.in/reader036/viewer/2022082504/55ce404dbb61eb98728b47b4/html5/thumbnails/1.jpg)
Debugger
![Page 2: Debugger](https://reader036.fdocuments.in/reader036/viewer/2022082504/55ce404dbb61eb98728b47b4/html5/thumbnails/2.jpg)
Code first - target_process
int main(int argc, char *argv[]){
int a = 0;
while( a == 0 ){
printf("%p\n", &a);
printf("%d\n", a);
sleep(2);
}
printf("%s\n", "OUT!");
return 0;
};
![Page 3: Debugger](https://reader036.fdocuments.in/reader036/viewer/2022082504/55ce404dbb61eb98728b47b4/html5/thumbnails/3.jpg)
Code first - debugger sprintf(name, "/proc/%.10s/mem", argv[1]);
if ((fd = open(name, O_WRONLY)) < 0) {
fprintf(stderr, "Can't access pid %s", argv[1]);
perror(":");
return 1;}
lseek(fd, strtol(argv[2], 0, 0), SEEK_SET);
if (write(fd, argv[3], strlen(argv[3])) < 0){
perror(“write");}
![Page 4: Debugger](https://reader036.fdocuments.in/reader036/viewer/2022082504/55ce404dbb61eb98728b47b4/html5/thumbnails/4.jpg)
shell• gcc target_process.c -o target_process &&
./target_process
• ps aux | grep target_process
• gcc debugger.c -o debugger
• sudo ./debugger [pid_of_target_process] [visual_address_of_target_variable] [value to change to ]
![Page 5: Debugger](https://reader036.fdocuments.in/reader036/viewer/2022082504/55ce404dbb61eb98728b47b4/html5/thumbnails/5.jpg)
Break the while loopint main(int argc, char *argv[]){
int a = 0;
while( a == 0 ){
printf("%p\n", &a);
printf("%d\n", a);
sleep(2);
}
printf("%s\n", "OUT!");
return 0;
};
![Page 6: Debugger](https://reader036.fdocuments.in/reader036/viewer/2022082504/55ce404dbb61eb98728b47b4/html5/thumbnails/6.jpg)
Detail on debugger sprintf(name, "/proc/%.10s/mem", argv[1]);
if ((fd = open(name, O_WRONLY)) < 0) {
fprintf(stderr, "Can't access pid %s", argv[1]);
perror(":");
return 1;}
lseek(fd, strtol(argv[2], 0, 0), SEEK_SET);
if (write(fd, argv[3], strlen(argv[3])) < 0){
perror(“write");}