救命!关于QNX ELF程序加密

我对QNX ELF程序加密做法如下:
1、修改note segment(phdr),替换为load型。并修改相应的va、pa、size等参数;
2、修改ehdr->entry,使之指向新增的load segment;
3、在elf文件末尾,添加新增的segment代码。代码比较简单,即
push new_entry
retn

从程序的逻辑和load_elf、ldd源代码分析看,这样做应该是没错的。但,实际执行的时候显示“invalid argument”,何解?
有经验的前辈指点指点,焦头烂额ing …

求助,求包养!

没人做过此类程序么?