我对一exe文件16进制进行手工修改,如0a 12 0b 23 改成00 00 00 00 并且0a 12 0b 23 在该文件是唯一的,我想在程序中自动实现这一功能如何实现?
谢谢各位!!

解决方案 »

  1.   

    你不怕该了之后破坏了文件的格式吗? 
    PE、NE、LE等可执行文件都是有规定的格式的(或者说是协议),通过格式分析,你只是简单的改改可执行文件的资源段还是可以的。水平高的,当然可以达到修改入口点等程度(可以写病毒)
      

  2.   

    查找?
    数据结构有很多查找算法,你可以找本书参考以下
    替换?
    你当文件读入然后替换字符写入
    CStringArray strarray;
    if( !file.Open(m_strPathIndex, CFile::modeRead) )
    {
    return;
    }
    CString strLine;
    while(file.ReadString(strLine))
    {
    strarray.Add(strLine);
    }
    file.Close();
    CString str;
    int nCount=strarray.GetSize();
    strarray.RemoveAt(...);//删除你所要替换的字符串
    strarray.InsertAt(...);//插入你所替换的新字符串
    if( !file.Open(m_strPathIndex, CFile::modeCreate|CFile::modeWrite) )
    {
    return;
    }
    for(i=0; i<strarray.GetSize(); i++)
    {
     str = "";
     str = strarray[i] + "\n";
     file.WriteString(str);
    }
    file.Close();