-
-
[原创]CTF2017_fpu 分析过程
-
发表于: 2017-10-27 13:46 3290
-
CTF2017_fpu 分析过程
1.IDA分析
根据字符串常量" Please input your code: ",找到输入字符串的地方
.text:00401050 var_C = dword ptr -0Ch
.text:00401050
.text:00401050 sub esp, 0Ch
.text:00401053 push offset aCodedByFpc_ ; " Coded by Fpc.\n\n"
.text:00401058 call sub_413D42
.text:0040105D add esp, 4
.text:00401060 push offset aPleaseInputYou ; " Please input your code: "
.text:00401065 call sub_413D42
.text:0040106A add esp, 4
.text:0040106D lea eax, [esp+0Ch+var_C]
.text:00401071 push eax
.text:00401072 push offset aS ; "%s"
.text:00401077 call _scanf
.text:0040107C lea eax, [esp+14h+var_C]
.text:00401080 add esp, 14h
.text:00401083 retn
.text:00401083 sub_401050 endp
2.随便输入12345678,找到两个处理返回值的地方
.text:0040101C call sub_401090
.text:00401021 call sub_4010E0
void sub_401090()
{
int v0; // [sp+4h] [bp-8h]@0
int v1; // [sp+8h] [bp-4h]@0
if ( v1 && v0 && v1 != v0 && 5 * (v1 - v0) + v1 == 0x8F503A42 && 13 * (v1 - v0) + v0 == 0xEF503A42 )
--dword_41B034;
}
void sub_4010E0()
{
int v0; // [sp+4h] [bp-8h]@0
int v1; // [sp+8h] [bp-4h]@0
if ( v1 && v0 && v1 != v0 && 17 * (v1 - v0) + v1 == 0xF3A94883 && 7 * (v1 - v0) + v0 == 0x33A94883 )
--dword_41B034;
}
初次采用穷举
写了个C程序
X 和Y从0x20202020到0x7F7F7F7F7F,穷举无果。
后来根据公式化简,采用计算器
11(y-x)=c0000000 4(y-x)=70000000 y-x = 1c000000,
算出一个x= 0xe7503a42,y = 03503a42,多次验证不正确。
3.
后来拖动IDA,发现00403131可疑。
.text:00413131 db 83h, 0C4h, 0F0h
.text:00413134 dd 20712A70h, 0F1C75F2h, 28741C71h, 2E0671DDh, 870F574h
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
- [求助]拍了两根数据线,快递只收到一根,求退还1500看雪币 6924
- [翻译]ConfuserEx保护选项 8509
- [原创]一种通过傀儡进程加载Quasar RAT.NET样本 3214
- [原创]pchunter逆向笔记 15166