0

我希望保护我的应用程序免受修改,我想做的是将程序的所有字节发送到套接字服务器,套接字服务器将计算哈希并比较哈希以确保没有对程序在继续会话之前,但我想获取正在运行的程序的字节,我很好奇这是否可能?

4

1 回答 1

0

简单的 C 演示程序:

#include <stdio.h>
int main(void) {
  FILE* file;
  unsigned int checkSum = 0, byteCount = 0;
  file = fopen("me", "rb"); // executable called 'me', read binary mody
  if(file != NULL) {
    while(!feof(file)) {
      checkSum = checkSum + fgetc(file);
      byteCount++;
    }
    printf("read %d bytes; ", byteCount);
    printf("checksum computed: %d\n", checkSum);
  }
  else printf("cannot open file 'me'\n");

  return 0;
}

显然这不是计算校验和的“正确方法”,但它表明正在运行的可执行文件可以打开自身并读取字节码。之后就看你自己了...

于 2013-10-19T23:42:13.777 回答