我想通过使用十六进制编辑器更改可执行文件中的整数声明变量的值,只是假设我知道在代码中声明了一个变量类型int,变量是这样的:
int value = 1337;
我想编辑可执行文件使用十六进制编辑器搜索值1337并将其更改为其他东西,我在ubuntu尝试ghex但我不知道如何搜索它我转换为十六进制但我没有找到它,先谢谢你们.
我正在编写一个程序,该程序接收命令名称和参数,并且可选地在末尾接收字符串“bg”,如果传递“bg”字符串,我的程序应该在后台执行该命令,如果不在前台,则其参数,这是我的代码:
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdio.h>
#include<errno.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
pid_t pid;
int state;
if( (pid=fork())<0) {
perror("\nError in fork");
exit(-1);
}
else if(pid==0) {
if(strcmp(argv[argc-1], "bg") == 0 ){
strcpy(argv[argc-1],"&");
if( (execvp(argv[1], argv)<0)) {
perror("\nError in first execvp");
exit(-1);
}
}
else{
if( (execvp(argv[1], argv+1)<0)) {
perror("\nError en second el execvp");
exit(-1);
}
}
}
wait(&state);
printf("\nMy child %d terminated with state %d\n",pid,state);
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
输入示例:
./myprogram ls -lai bg // in this …Run Code Online (Sandbox Code Playgroud)