私は自己変更プログラムを書いています。すでに機能しています。これらの 2 つの関数を見つけましたが、正確に何をするかわからないので、コードに適切なコメントを付けたいと思います。
ページサイズは getpagesize を使用して取得されます
/*
* Defining variables:
* func - function in memory I'm using mprotect on
* offset - the offset in memory
* ptr - the pointer to the memory
*/
unsigned int offset = (unsigned int)( ((long)func) & (pagesize-1) );
unsigned char * ptr = (unsigned char *) ((long)func & (~(pagesize-1) ) );
オフセットの関数がメモリ アラインメント チェックに使用されていることがわかりました。私は彼らが何をしているのか漠然と知っていますが、違いはありませんか?
ありがとう。