如题

解决方案 »

  1.   

    直接改内存????
    外部程序是delphi 写的吗? 如果是的话,估计......
      

  2.   

    我要修改微软的 VSS 添加一些功能进去,我想添加个菜单,也不知道有没有高手给指明前进的道路。
      

  3.   

    如果是简单的showmessage之类功能可以做~
      复杂了就不知道了~
      

  4.   

    分几个步骤完成:
    1. 用 resource hacker 修改菜单,然后就得到菜单了,并且分配给菜单的ID(也就是菜单编号),是唯一的,不能和其它资源编号相同,一般就是在原有菜单最大ID基础上加1就行了.
    2.用OD载入程序,然后在里面找出类似以下的代码.
    switch(菜单ID)
    {
      case 菜单1:处理函数1();break;
      case 菜单2:处理函数2();break;
    ....
      case 菜单n:处理函数n();break;
    }
    编译成汇编代码如下:
    cmp 菜单ID,菜单1
    je 处理函数1
    jmp BACK
    cmp 菜单ID,菜单2
    je 处理函数1
    jmp BACK
    ....
    cmp 菜单ID,菜单n
    je 处理函数n
    jmp BACKBACK:
    ret
    这里假设你的菜单ID为n+1,然后就把上面的代码修改为:
    cmp 菜单ID,菜单1
    jmp mylabel                  'je 处理函数1 这个被删掉,这里是直接跳到我们的地方去执行一段代码
    jmp LABEL1
    LABEL2:
    cmp 菜单ID,菜单2
    je 处理函数1
    jmp LABEL1
    ....
    cmp 菜单ID,菜单n
    je 处理函数n
    jmp LABEL1LABEL1:
    ret
    这里是我们添加的代码,可以用OD在进程空间里找一段空的地方添加这些代码进来,直接修改就行了.
    mylabel:
    je 处理函数1                '跳到这里之后,还可以继续使用上面判断的结果,如果是菜单1,就处理它
    cmp 菜单ID,菜单n+1          '到这里不管上面有没有执行,都判断是不是我们添加的菜单ID,
    je 处理函数n+1               '如果是,就处理它
    jmp LABEL2                 '因为这段代码是我们添加进来的,所以我们一定要跳回去,所以是LABEL2
    如果你还有不明白的,可以到这里看更详细的教程.
    http://bbs.pediy.com/showthread.php?threadid=30623说得这么辛苦,LZ可以给分了吧.
      

  5.   

    厄,可以Reverse,不管什么程序都可以。不过要你看的功底了,也不是很难。
    修改Exe文件,学会了当文本文件来修改都行。