在模块中,通过查询super_blocks列表,来遍历系统中的所有super_block,但是出现与下面类似的错误:

http://stackoverflow.com/q/5051111/941650

 

也可以参考他的解决方法,到System.map中去查找真实地址,不过这样不是解决问题的最好方法。

先贴出当前的代码

#include <linux/module.h>
#include <linux/fs.h>
   3:  
);
   5:  
   6:  
const u_char* data)
   8: {
if (size == 0)
  10:     {
return;
  12:     }
  13:  
, (u32)data);
long i = 0;
for (i=0;i<16;i++)
  17:     {
, i);
  19:     }
);
for (i=0;i<16;i++)
  22:     {
);
  24:     }
  25:  
char lineSummary[17] = {0,};
long pos = 0;
for (i=0;i<size;i++)
  29:     {
if ((pos = i % 16) == 0)
  31:         {
if (i != 0)
  33:             {
, lineSummary);
  35:                 memset(lineSummary, 0, 17);
  36:             }
else
  38:             {
);
  40:             }        
  41:         }
  42:  
, *(data + i));
  44:  
if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)
  46:         {
  47:             lineSummary[pos] = *(data + i);
  48:         }
else
  50:         {
' ';
  52:         }
  53:     }
  54:  
if (size % 16 != 0)
  56:     {
for (i=0;i<16 - (size%16);i++)
  58:         {
);
  60:         }
  61:     }
  62:  
, lineSummary);
);    
  65: }
  66:  
void AnalyzeSuperBlock()
  68: {
struct super_block* item;
struct list_head * super_blocks = 0xc1778bc0;
  71:  
  72:     list_for_each_entry(item,super_blocks,s_list)
  73:     {
, item, item->s_id);
  75:     }
  76: }
  77:  
int pslist_init()
  79: {
);
  81:     AnalyzeSuperBlock();
return 0;
  83: }
  84:  
void pslist_exit()
  86: {
);
  88: }
  89:  
  90:  
  91:  
  92: module_init(pslist_init);
  93: module_exit(pslist_exit);

相关文章:

  • 2021-07-04
  • 2021-10-16
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2021-07-27
  • 2021-10-20
  • 2022-12-23
猜你喜欢
  • 2021-12-31
  • 2022-12-23
  • 2021-11-17
  • 2021-11-15
  • 2021-12-15
  • 2022-12-23
  • 2022-03-03
相关资源
相似解决方案