最后更新2021/12/09
NLS,regex有了些眉目,然后曾经以为被填满的旧坑变成了陷阱。XMC_XO重定向出了问题,重定向结果不对,打击心情。最新的研究结果是有可能libc在加载时额外做了补丁,一大串指令都被修改,不似relocation所为。再继续研究吧。
cut可以直接跑,没啥问题,算是第一个直接跑起来完全没问题的AIX 32位程序;
tee也OK了,但发现了一堆用XMC_XO的垃圾,还在研究解决方案。
more,需要libcurses.a,这个放以后;
BTW,找到XMC_XO出错的原因,原来时millicode搞的鬼,又是一个不大不小的坑。但既然定位了画像,就心中不慌。极致的恐惧来自于未知,我深信不疑。
确实如此,找到问题原因,黑科技自然来,XMC_XO的直接解决方案验证通过,但同时,为啥有些程序reloc的信息没有呢?一律空空空,text,data都是如此,这让我如何是好?毕竟需要知道在什么地方要恶搞一下子。。。
这个问题的来龙去脉基本搞清楚,看来解决方案没那么简单,虽然已经实验成功那些能做relocate的程序,但似乎还有不少已经被strip掉重定位信息。这个问题只能通过继续搞Power Linux内核解决了。暂时挂起,继续看下一步。
目前loader局限(仅支持):
- 32位程序;
- 不使用诸如___memcpy之类的保留函数;
- 使用保留函数但未删除重定位信息;
- 另外除了shr.o之外,如果使用其它库函数,并未测试;
- shr.o (libc)只实现了十几个call,其它的call会根据需要再填进去。套路是一样的,如果不出意外,不会有什么太大的问题。