自己写的一个“加壳”程序,其实就是用了网上的一个PEUnit来实现A调用B如果B是一个小程序,则没什么问题
如果把B的文件名改一改,则调用出现错误
如果把B的文件名不改,则调用正确
如果把B的一些二进制代码,在A中再还原的话,一样出现调用错误。
这里说的调用错误,是指能进入B程序,但是进入B程序后会出错(有时候假死,有时候crash).其实我的目的是想把B隐藏起来,让B无法直接点击进入求教~~~~~~~

解决方案 »

  1.   

    可以让B程序运行时带特定参数,这样的话只有A知道参数是什么
    方法:在B项目文件里通过ParamStr(1)截取第1个参数,第0个参数是程序路径。
      

  2.   


    现在A调用B,只要B一修改(改名或改B的2进制代码)程序会假死,不知道为什么...
    除此之外还办法没
      

  3.   

    哎,搞不懂你的真实目的
    1、A为什么要调用B?
    2、B为什么要加壳?
    3、你要解决什么问题?
      

  4.   

    加壳,可以实现。不会出现任何错误。
    程序A调用B,隐藏B程序本身。可以实现。你的问题我怀疑是因为B程序在尾部读取自身数据时出错。因为你把B做到A中了,那么B读自身的时候却读到了A的数据,而你的A中是无数据的。
      

  5.   

    不释放执行,放到资源中可以,定义一个EXE变量也可以,而且更方便。
    但这两种方式都会导致B读自身时失败。如果你确实是读自身导致的,那么上述两种方法都不行,需要考虑的问题也就多了。没有400分我是不愿意花时间给你解决的。必定大家都很忙,希望你理解。如果你不是读自身,只是不释放调用出现的一般性问题,那么加分后就可以给你答案。如果你的程序B读的自身不是尾部,而是在PE的某个位置,那么还需要计算偏移量,更麻烦了,我就不参与你这个问题了。建议你先将EXE发给我研究一下。