-
-
[原创]我的答案
-
发表于:
2008-10-3 12:40
2578
-
因为要通过IE打开
8deK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0T1M7#2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1%4i4K6V1@1i4@1p5^5g2$3W2F1c8i4S2W2j5#2!0q4c8W2!0n7b7#2)9^5b7#2y4Z5k6h3I4D9c8i4S2W2j5%4g2@1k6g2!0q4c8W2!0n7b7#2)9^5b7@1y4J5k6h3q4@1k6g2m8J5L8$3y4W2M7%4y4Q4c8e0W2Q4z5o6y4Q4b7V1c8Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0g2Q4b7f1g2Q4z5f1g2Q4c8e0N6Q4z5p5g2Q4b7U0m8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0c8Q4b7U0S2Q4z5p5c8Q4c8e0N6Q4z5f1k6Q4b7e0g2Q4c8e0W2Q4z5o6q4Q4z5e0y4Q4c8e0S2Q4b7V1k6Q4z5e0S2Q4c8e0k6Q4z5f1y4Q4z5o6W2Q4c8e0k6Q4b7U0u0Q4b7e0q4Q4c8e0k6Q4z5f1y4Q4z5o6W2Q4c8e0g2Q4z5o6g2Q4b7U0k6Q4c8e0c8Q4b7V1u0Q4z5e0k6Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0g2Q4z5o6N6Q4b7V1c8Q4c8e0k6Q4z5e0g2Q4b7U0m8Q4c8e0c8Q4b7U0W2Q4z5f1k6Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0y4Q4z5o6m8Q4z5o6u0o6M7X3g2S2N6r3g2b7M7X3!0U0k6i4y4K6i4@1f1#2i4K6S2r3i4K6R3J5i4@1f1$3i4K6V1#2i4@1t1H3i4@1f1#2i4@1p5@1i4@1q4m8i4@1f1#2i4@1p5@1i4K6W2m8i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4@1t1H3i4@1t1I4i4@1f1@1i4@1t1^5i4K6S2p5i4@1f1^5i4K6R3H3i4K6R3K6i4@1f1^5i4K6V1&6i4K6V1I4i4@1f1@1i4@1u0m8i4K6R3$3i4@1g2r3i4@1u0o6i4K6S2o6g2$3W2F1c8i4S2W2j5#2!0q4y4g2)9^5c8W2!0m8b7g2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7z5q4!0m8y4q4!0q4y4q4!0n7z5q4!0m8b7g2!0q4y4g2)9^5c8W2)9^5x3W2!0q4y4W2)9&6y4g2!0n7x3q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4q4!0n7c8q4)9^5y4W2!0q4y4q4!0n7z5q4)9^5c8q4!0q4y4W2)9^5b7#2)9^5y4#2!0q4y4g2!0m8c8g2)9&6b7g2!0q4y4g2)9^5y4g2!0m8z5q4!0q4z5q4!0n7y4#2!0m8c8W2!0q4y4g2!0n7c8g2)9^5y4q4!0q4y4W2)9&6y4#2!0m8x3q4!0q4y4W2!0n7x3#2)9&6y4g2!0q4y4g2)9&6x3q4!0m8c8W2!0q4y4g2)9^5b7g2!0m8z5p5W2q4i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1u0p5i4K6R3$3i4@1f1$3i4K6S2o6i4K6R3%4i4@1f1#2i4@1q4q4i4K6W2m8i4@1f1$3i4@1q4p5i4@1u0n7i4@1f1@1i4@1u0m8i4K6R3$3i4@1f1@1i4@1t1&6i4K6W2r3i4@1f1@1i4@1t1^5i4K6S2p5i4@1f1^5i4@1p5I4i4K6S2o6i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6R3&6i4K6R3H3i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1#2i4K6S2r3i4@1q4m8i4@1f1#2i4@1p5#2i4@1u0p5i4@1f1%4i4K6V1@1i4@1p5^5
ShellExecute 了,ShellExecute 有6个参数,弄了半天,也没有实现在13个字节实现调用该函数,很多人都说几个字节就可以实现,以后得好好拜读一下各位的答案。因此只好另走捷径了,既然PUSH只算代码本身字节,不计算内容,那我只好用shellcode来实现了,呵呵。
我的OpenUrlA函数就成了如下这个了。
push offset shellcode
retn
只有6个字节,不知道用shellcode符合要求不,shellcode是真正要执行的代码,其实就是调用ShellExecute。
主要修改位置:
1、文件偏移0X4D0处增加OpenUrlA函数的代码;
2、修改输入表(Import Table),增加从SHELL32.dll中导入函数ShellExecute;
3、增加输出表(Export Table),导出OpenUrlA函数;
4、在.reloc节中增加重定位项,用于对OpenUrlA函数涉及到ImageBase的进行重定位;
5、因为打开IE后不能有其他操作,顺便把MessageBox对话框也去掉了
没有添加节,也没有修改文件大小。
没有添加节,也没有修改文件大小。
在Windows2000/XP下测试通过,以下是测试程序(test.cpp,附件:test.rar)。
#include <windows.h>
void main(void)
{
HINSTANCE hModule=LoadLibrary("pediy.dll");
if(hModule!=NULL)
{
FARPROC proc;
proc=GetProcAddress(hModule,"OpenUrlA");
proc();
FreeLibrary(hModule);
}
}
因为不知道shellcode算不算,因此pediy.dll提交了两个附件。
pediy.dll附件1:pediy_by_aprice_6bytes.rar,6bytes的,用shellcode实现的。
pediy.dll附件2:如果上面用shellcode不算的话,那就是20bytes,附件pediy_by_aprice_20bytes.rar,两个除了OpenUrlA的入口不一样外,其他完全是一样。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!