-
-
[原创]极小的恶作剧程序(188字节)--PE学习
-
发表于:
2010-9-1 07:02
13298
-
[原创]极小的恶作剧程序(188字节)--PE学习
发个刚整的PE文件,看过以前有个253字节的程序,弹出个提示框,看过后,发现缩小的空间还很大,自己重新编个更小的,188字节
大小估计缩小的幅度不大了, 区段全部压缩到DOS+PE头中了
不过功能还可以添加很多,还有很大的地方可以填写自己的代码...
提示: 1 把关闭.bat放到桌面再试验
2 XP下可执行
---------------------------------------------------------------------------
00000000 4D 5A 00 00 50 45 00 00 4C 01 01 00 55 53 45 52
↑ ↑ ↑ ↑ ↑
"MZ" "PE\0\0" 平台 区块数 导入dll名称
00000010 33 32 2E 44 4C 4C 00 00 78 00 0F 01 0B 01 FF 15
↑ ↑ ↑
OPTIONAL 大小,文件属性 ↑
[自己的程序代码...
↑
00000020 90 00 40 00 50 B9 94 00 40 00 EB 44 1E 00 00 00
............................... ] ↑
程序入口点
00000030 20 F0 00 00 12 01 00 00 00 00 40 00 04 00 00 00
↑ ↑
装入内存地址 指向PE头偏移(DOS头结构)
00000040 04 00 00 00 0C 00 00 00 AC 00 00 00 04 00 00 00
↑ [......................]
最低版本:4
00000050 00 4C 6F 6F 6B 68 63 00 BC 00 00 00 12 01 00 00
{...............} ↑ {自由部分}
DOS,PE头总和
00000060 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
↑ ↑
↑ <1F <1F
视图模式 {.....这是段堆栈设置区域 ........}
00000070 FF 15 94 00 40 00 EB A6 02 00 00 00 00 00 00 00
[.........代码........] ↑ ↑
数据目录表数 输出表地址(由于大小=0所以不加载)
输入表指向地址(共用地址)
00000080 70 F1 00 00 7C 00 00 00 0C 00 00 00 90 00 00 00
↑ ↑ ↑ ↑
输出表地址大小 输入表地址 大小 输入表导入数组地址
00000090 18 01 00 80 45 00 00 80 00 00 00 00 BC 00 00 00
↑ ↑ ↑ ↑
导入表: 按符号导入 存在2个导入函数 必须为0(1:因为dll的导入函数结束标志/ 2:导入dll结束标志)
导入了GetForegroundWindow和closewindow 两个函数
.text区块起始(名字被换了)
虚拟地址 虚拟偏移
000000A0 00 00 00 00 BC 00 00 00 00 00 00 00 00 00 00 00
物理地址 物理偏移
000000B0 00 00 00 00 00 00 00 00 20 00 00 F0
必须为0 块属性
自己代码,结构示意
addr:
call GetForegroundWindow
push eax
call closewindow
jmp addr
;上面标记"...."的部分可以自己改的
;其实剩余的"...."可以很丰富,还有不少空间可以再继续写入执行代码的.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)