能力值:
( LV13,RANK:970 )
|
-
-
51 楼
把带壳文件dump出来一份直接用一般就可以了。不果如果iat被特殊处理,或者你调用的函数里面被加了sdk,那就有些麻烦了。
|
能力值:
( LV9,RANK:250 )
|
-
-
52 楼
nbw,你有没有试过delphi程序,貌似加载delphi会有tls的问题。
|
能力值:
( LV13,RANK:970 )
|
-
-
53 楼
没有。delphi编译出来的程序,很多库函数都被inline进程序体了,导致程序代码比较庞大,你要用的话可能需要处理的东西比较多。你程序大不大,不大的话可以发给我,不过我可能也没多少空看了。
|
能力值:
(RANK:1130 )
|
-
-
54 楼
他没有从ep开始执行,不会出问题的
|
能力值:
( LV15,RANK:930 )
|
-
-
55 楼
下面的专杀即是 loadexe 做的,为了躲避特木马的征码扫描
http://dl.360safe.com/killer_zjz.zip
|
能力值:
( LV9,RANK:250 )
|
-
-
56 楼
这个0x400000是不好预留的,地址空间经常会被map掉。
|
能力值:
( LV15,RANK:930 )
|
-
-
57 楼
当进程内只有 kernel32.dll、 ntdll.dll 和主程序时,得到0x400000很简单,user32.dll 如果被加载进程空间将变得很乱...
|
能力值:
(RANK:1130 )
|
-
-
58 楼
所以说,最好用asm或者c去写,不要用delphi去写
|
能力值:
( LV13,RANK:970 )
|
-
-
59 楼
汉,没太明白你和作者的意思。生成了一个xavengine.dll,貌似用这个,调用360产品的病毒引擎进行病毒扫描吧。
你是不是想说SuperKiller.exe被运行.exe给load了?他这个load没必要搞那么复杂的,貌似他的SuperKiller.exe可以作为一个DLL被调用,也就是有导出表,同时拥有exe和dll属性。貌似是这样的,哪天有空看看或者找胖同学问一下
|
能力值:
( LV4,RANK:50 )
|
-
-
60 楼
我的疑问和大米差不多,其实个人写程序大多要想load的话写出导出表就是了,你大概是指针对第三方程序?
|
能力值:
( LV6,RANK:90 )
|
-
-
61 楼
你不试试怎么知道呢
|
能力值:
( LV2,RANK:10 )
|
-
-
62 楼
厉害.学习中
|
能力值:
( LV2,RANK:10 )
|
-
-
63 楼
不太懂,顶一下
|
能力值:
( LV2,RANK:140 )
|
-
-
64 楼
我也做过一次,主要难点在于反汇编引擎。
笨笨雄的思路应该是可行的,在调用范围之外用
try{}catch{}包围起来,调整地址。等有机会再试一下。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、代码重定位,只需记录IMAGE_BASE就够了;
2、变量地址的重定位,用IDC脚本查找代码中所有需要变更的对变量引用的地址,放入addrlist.txt备用;
3、在自己的程序(称为调用程序)中读入目标程序,我在网上找了一段代码(http://www.wwwer.net/cn/article.asp?id=852);
4、按addrlist.txt记录的地址,修改变量地址(= 当前值 - 原来的BASE + 新BASE);
5、为了保持目标程序的运行环境,从目标程序入口点开始执行到main函数;
6、修改main函数开始处的指令直接跳回调用程序,这里的关键是能恢复调用程序的运行环境。我这里只是简单的恢复EBP的值,似乎够用了。
7、准备参数,调用目标函数,显示返回结果;
看来关键还是IDA Pro的反汇编能力(或者说加标签的能力 :)),当上面的第5点不能顺利完成时,主要原因是漏掉了某个需要修改的地址值,回到IDA中察看,一般是IDA没分析出来。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|