如题!
我昨天用二进制改了一下PE的时间戳,程序居然就说我这个程序不是win32有效程序了:(
我该怎么办,用vb可以办得到吗?(难道非要汇编?)

解决方案 »

  1.   

    http://www.pediy.com/tutorial/chap8/Chap8-1-1.htm
    对PE得介绍
      

  2.   

    参考:
    http://www.pediy.com/tutorial/chap8/Chap8-1-1.htm
      

  3.   

    http://www.tech521.com/techData/data/1508.asp
      

  4.   

    VB除了PE文件头外,全是数据:)
      

  5.   

    给一个例子吧!
    我看了几个用汇编的例子,比如插入shellexecute函数,确实是用了fullor2000(兽子) 说的重定位技术。
    如果是用二进制,从那么多数据中重定位,该怎么做?
    文件头可以改?它们有固定的结构了,就象时间戳,改了一下时间就不行,那还能改其他的?
      

  6.   

    你说的“时间戳”是在pe文件头的那个地方?
    改之前你要明白PE的文件格式
      

  7.   

    在coff里面吧?我一下子都记不起来了:)(我在网吧)
    时间戳是一个4个8位数,比如说ffffffff就是“1998年8月11日”(好象是的,有点忘了),
    我是先通过pe编辑器,找到它,看它的值以后,我然后从二进制文件找出它的位置,由于pe的文件头格式是固定的,所以时间戳的位置也是固定的,它距离在201字节的位置!
    我对格式还是有一定了解的,请指教!呵呵----
      

  8.   

    动态修改exe恐怕不行,这和做一个编译器差不了太多,不过可以以脚本形式将一些简单命令和并在exe后,exe运行时读取来处理
      

  9.   

    就像"最近比较烦"中唱的一样...
    ............
    这个,基本上,很难.....  :)
    ............俺以前也找过相关的资料(修改PE图标),也发过贴子,不过,还是没有什么比较好的解决之道,要是你懂ASM的话,倒是可以自己研究PE的格式再用VB调用ASM来实现...