-
-
[旧帖] [求助]swtich..case语句的分支表怎么分析,详见例子 0.00雪花
-
发表于: 2011-12-15 14:27 1214
-
这是最近看的一个软件,它的case分支表我感觉是一个骗局,大家是否有同感。
希望有人能点拨一下。
00411D2C . 6A FF PUSH -1
00411D2E . 68 34010000 PUSH 134
00411D33 . 68 7AF00000 PUSH 0F07A
00411D38 . E8 6B010100 CALL <JMP.&MFC42u.#1196>
00411D3D . 83F8 06 CMP EAX,6 ; button of user YES or NO
00411D40 . 74 15 JE SHORT OvHHisto.00411D57
00411D42 . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00411D46 . 889C24 A40E00>MOV BYTE PTR SS:[ESP+EA4],BL
00411D4D . E8 00000100 CALL <JMP.&MFC42u.#800>
00411D52 . E9 E7000000 JMP OvHHisto.00411E3E
00411D57 > 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
00411D5B . 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14]
00411D5F . 52 PUSH EDX
00411D60 . 51 PUSH ECX
00411D61 . 8BCC MOV ECX,ESP
00411D63 . 896424 20 MOV DWORD PTR SS:[ESP+20],ESP
00411D67 . 50 PUSH EAX
00411D68 . E8 6F030100 CALL <JMP.&MFC42u.#535>
00411D6D . 8B4C24 28 MOV ECX,DWORD PTR SS:[ESP+28]
00411D71 . 51 PUSH ECX
00411D72 . 8D8E E0010000 LEA ECX,DWORD PTR DS:[ESI+1E0]
00411D78 . E8 73C2FFFF CALL OvHHisto.0040DFF0
00411D7D . 8BF8 MOV EDI,EAX
00411D7F . 3BFB CMP EDI,EBX
00411D81 . 74 65 JE SHORT OvHHisto.00411DE8
00411D83 . 8D87 C90FFFFF LEA EAX,DWORD PTR DS:[EDI+FFFF0FC9] ; Switch (cases F037..F05E)
00411D89 . 83F8 27 CMP EAX,27
00411D8C . 77 29 JA SHORT OvHHisto.00411DB7
00411D8E . 33D2 XOR EDX,EDX
00411D90 . 8A90 781E4100 MOV DL,BYTE PTR DS:[EAX+411E78]
00411D96 . FF2495 701E41>JMP DWORD PTR DS:[EDX*4+411E70]
00411D9D > 8D4424 24 LEA EAX,DWORD PTR SS:[ESP+24] ; Cases F037,F038,F053,F054,F05D,F05E of switch 00411D83
00411DA1 . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411DA5 . 50 PUSH EAX
00411DA6 . 53 PUSH EBX
00411DA7 . E8 BEFF0000 CALL <JMP.&MFC42u.#2910>
00411DAC . 50 PUSH EAX
00411DAD . E8 BE5F0000 CALL OvHHisto.00417D70
00411DB2 . 83C4 08 ADD ESP,8
00411DB5 . EB 1C JMP SHORT OvHHisto.00411DD3
00411DB7 > 8D5424 24 LEA EDX,DWORD PTR SS:[ESP+24] ; Default case of switch 00411D83
00411DBB . 52 PUSH EDX
00411DBC . 57 PUSH EDI
00411DBD . E8 DCF20000 CALL <JMP.&OvhClientAPI.?GetErrorString@>
00411DC2 . 83C4 08 ADD ESP,8
00411DC5 . 8D4424 24 LEA EAX,DWORD PTR SS:[ESP+24]
00411DC9 . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411DCD . 50 PUSH EAX
00411DCE . E8 91FF0000 CALL <JMP.&MFC42u.#860>
00411DD3 > 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
00411DD7 . 53 PUSH EBX
00411DD8 . 53 PUSH EBX
00411DD9 . 51 PUSH ECX
00411DDA . E8 CF000100 CALL <JMP.&MFC42u.#1197>
00411DDF . 8BCE MOV ECX,ESI
00411DE1 . E8 2AE8FFFF CALL OvHHisto.00410610
00411DE6 . EB 27 JMP SHORT OvHHisto.00411E0F
00411DE8 > 8D8E 78030000 LEA ECX,DWORD PTR DS:[ESI+378]
00411DEE . 899E DC010000 MOV DWORD PTR DS:[ESI+1DC],EBX
00411DF4 . E8 F73EFFFF CALL OvHHisto.00405CF0
00411DF9 . 53 PUSH EBX
00411DFA . 8BCE MOV ECX,ESI
00411DFC . E8 9F000000 CALL OvHHisto.00411EA0
00411E01 . 8BCE MOV ECX,ESI
00411E03 . E8 08E8FFFF CALL OvHHisto.00410610
00411E08 . 8BCE MOV ECX,ESI
00411E0A . E8 01F3FFFF CALL OvHHisto.00411110
00411E0F > 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00411E13 . 889C24 A40E00>MOV BYTE PTR SS:[ESP+EA4],BL
00411E1A . E8 33FF0000 CALL <JMP.&MFC42u.#800>
00411E1F . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411E23 . C78424 A40E00>MOV DWORD PTR SS:[ESP+EA4],-1
00411E2E . E8 1FFF0000 CALL <JMP.&MFC42u.#800>
00411E33 . 8BC7 MOV EAX,EDI
00411E35 . EB 1E JMP SHORT OvHHisto.00411E55
00411E37 > 8BCE MOV ECX,ESI
00411E39 . E8 D2E7FFFF CALL OvHHisto.00410610
00411E3E > 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411E42 . C78424 A40E00>MOV DWORD PTR SS:[ESP+EA4],-1
00411E4D . E8 00FF0000 CALL <JMP.&MFC42u.#800>
00411E52 . 83C8 FF OR EAX,FFFFFFFF
00411E55 > 8B8C24 9C0E00>MOV ECX,DWORD PTR SS:[ESP+E9C]
00411E5C . 5F POP EDI
00411E5D . 5E POP ESI
00411E5E . 64:890D 00000>MOV DWORD PTR FS:[0],ECX
00411E65 . 5B POP EBX
00411E66 . 81C4 9C0E0000 ADD ESP,0E9C
00411E6C . C3 RETN
00411E6D 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
00411E70 . 9D1D4100 DD OvHHisto.00411D9D ; 分支表 被用于 00411D96
00411E74 . B71D4100 DD OvHHisto.00411DB7
00411E78 . 00 DB 00 ; 分支 00411E70 索引表
00411E79 . 00 DB 00
00411E7A . 01 DB 01
00411E7B . 01 DB 01
00411E7C . 01 DB 01
00411E7D . 01 DB 01
00411E7E . 01 DB 01
00411E7F . 01 DB 01
00411E80 . 01 DB 01
00411E81 . 01 DB 01
00411E82 . 01 DB 01
00411E83 . 01 DB 01
00411E84 . 01 DB 01
00411E85 . 01 DB 01
00411E86 . 01 DB 01
00411E87 . 01 DB 01
00411E88 . 01 DB 01
00411E89 . 01 DB 01
00411E8A . 01 DB 01
00411E8B . 01 DB 01
00411E8C . 01 DB 01
00411E8D . 01 DB 01
00411E8E . 01 DB 01
00411E8F . 01 DB 01
00411E90 . 01 DB 01
00411E91 . 01 DB 01
00411E92 . 01 DB 01
00411E93 . 01 DB 01
00411E94 . 00 DB 00
00411E95 . 00 DB 00
00411E96 . 01 DB 01
00411E97 . 01 DB 01
00411E98 . 01 DB 01
00411E99 . 01 DB 01
00411E9A . 01 DB 01
00411E9B . 01 DB 01
00411E9C . 01 DB 01
00411E9D . 01 DB 01
00411E9E . 00 DB 00
00411E9F . 00 DB 00
希望有人能点拨一下。
00411D2C . 6A FF PUSH -1
00411D2E . 68 34010000 PUSH 134
00411D33 . 68 7AF00000 PUSH 0F07A
00411D38 . E8 6B010100 CALL <JMP.&MFC42u.#1196>
00411D3D . 83F8 06 CMP EAX,6 ; button of user YES or NO
00411D40 . 74 15 JE SHORT OvHHisto.00411D57
00411D42 . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00411D46 . 889C24 A40E00>MOV BYTE PTR SS:[ESP+EA4],BL
00411D4D . E8 00000100 CALL <JMP.&MFC42u.#800>
00411D52 . E9 E7000000 JMP OvHHisto.00411E3E
00411D57 > 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
00411D5B . 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14]
00411D5F . 52 PUSH EDX
00411D60 . 51 PUSH ECX
00411D61 . 8BCC MOV ECX,ESP
00411D63 . 896424 20 MOV DWORD PTR SS:[ESP+20],ESP
00411D67 . 50 PUSH EAX
00411D68 . E8 6F030100 CALL <JMP.&MFC42u.#535>
00411D6D . 8B4C24 28 MOV ECX,DWORD PTR SS:[ESP+28]
00411D71 . 51 PUSH ECX
00411D72 . 8D8E E0010000 LEA ECX,DWORD PTR DS:[ESI+1E0]
00411D78 . E8 73C2FFFF CALL OvHHisto.0040DFF0
00411D7D . 8BF8 MOV EDI,EAX
00411D7F . 3BFB CMP EDI,EBX
00411D81 . 74 65 JE SHORT OvHHisto.00411DE8
00411D83 . 8D87 C90FFFFF LEA EAX,DWORD PTR DS:[EDI+FFFF0FC9] ; Switch (cases F037..F05E)
00411D89 . 83F8 27 CMP EAX,27
00411D8C . 77 29 JA SHORT OvHHisto.00411DB7
00411D8E . 33D2 XOR EDX,EDX
00411D90 . 8A90 781E4100 MOV DL,BYTE PTR DS:[EAX+411E78]
00411D96 . FF2495 701E41>JMP DWORD PTR DS:[EDX*4+411E70]
00411D9D > 8D4424 24 LEA EAX,DWORD PTR SS:[ESP+24] ; Cases F037,F038,F053,F054,F05D,F05E of switch 00411D83
00411DA1 . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411DA5 . 50 PUSH EAX
00411DA6 . 53 PUSH EBX
00411DA7 . E8 BEFF0000 CALL <JMP.&MFC42u.#2910>
00411DAC . 50 PUSH EAX
00411DAD . E8 BE5F0000 CALL OvHHisto.00417D70
00411DB2 . 83C4 08 ADD ESP,8
00411DB5 . EB 1C JMP SHORT OvHHisto.00411DD3
00411DB7 > 8D5424 24 LEA EDX,DWORD PTR SS:[ESP+24] ; Default case of switch 00411D83
00411DBB . 52 PUSH EDX
00411DBC . 57 PUSH EDI
00411DBD . E8 DCF20000 CALL <JMP.&OvhClientAPI.?GetErrorString@>
00411DC2 . 83C4 08 ADD ESP,8
00411DC5 . 8D4424 24 LEA EAX,DWORD PTR SS:[ESP+24]
00411DC9 . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411DCD . 50 PUSH EAX
00411DCE . E8 91FF0000 CALL <JMP.&MFC42u.#860>
00411DD3 > 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
00411DD7 . 53 PUSH EBX
00411DD8 . 53 PUSH EBX
00411DD9 . 51 PUSH ECX
00411DDA . E8 CF000100 CALL <JMP.&MFC42u.#1197>
00411DDF . 8BCE MOV ECX,ESI
00411DE1 . E8 2AE8FFFF CALL OvHHisto.00410610
00411DE6 . EB 27 JMP SHORT OvHHisto.00411E0F
00411DE8 > 8D8E 78030000 LEA ECX,DWORD PTR DS:[ESI+378]
00411DEE . 899E DC010000 MOV DWORD PTR DS:[ESI+1DC],EBX
00411DF4 . E8 F73EFFFF CALL OvHHisto.00405CF0
00411DF9 . 53 PUSH EBX
00411DFA . 8BCE MOV ECX,ESI
00411DFC . E8 9F000000 CALL OvHHisto.00411EA0
00411E01 . 8BCE MOV ECX,ESI
00411E03 . E8 08E8FFFF CALL OvHHisto.00410610
00411E08 . 8BCE MOV ECX,ESI
00411E0A . E8 01F3FFFF CALL OvHHisto.00411110
00411E0F > 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00411E13 . 889C24 A40E00>MOV BYTE PTR SS:[ESP+EA4],BL
00411E1A . E8 33FF0000 CALL <JMP.&MFC42u.#800>
00411E1F . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411E23 . C78424 A40E00>MOV DWORD PTR SS:[ESP+EA4],-1
00411E2E . E8 1FFF0000 CALL <JMP.&MFC42u.#800>
00411E33 . 8BC7 MOV EAX,EDI
00411E35 . EB 1E JMP SHORT OvHHisto.00411E55
00411E37 > 8BCE MOV ECX,ESI
00411E39 . E8 D2E7FFFF CALL OvHHisto.00410610
00411E3E > 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00411E42 . C78424 A40E00>MOV DWORD PTR SS:[ESP+EA4],-1
00411E4D . E8 00FF0000 CALL <JMP.&MFC42u.#800>
00411E52 . 83C8 FF OR EAX,FFFFFFFF
00411E55 > 8B8C24 9C0E00>MOV ECX,DWORD PTR SS:[ESP+E9C]
00411E5C . 5F POP EDI
00411E5D . 5E POP ESI
00411E5E . 64:890D 00000>MOV DWORD PTR FS:[0],ECX
00411E65 . 5B POP EBX
00411E66 . 81C4 9C0E0000 ADD ESP,0E9C
00411E6C . C3 RETN
00411E6D 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
00411E70 . 9D1D4100 DD OvHHisto.00411D9D ; 分支表 被用于 00411D96
00411E74 . B71D4100 DD OvHHisto.00411DB7
00411E78 . 00 DB 00 ; 分支 00411E70 索引表
00411E79 . 00 DB 00
00411E7A . 01 DB 01
00411E7B . 01 DB 01
00411E7C . 01 DB 01
00411E7D . 01 DB 01
00411E7E . 01 DB 01
00411E7F . 01 DB 01
00411E80 . 01 DB 01
00411E81 . 01 DB 01
00411E82 . 01 DB 01
00411E83 . 01 DB 01
00411E84 . 01 DB 01
00411E85 . 01 DB 01
00411E86 . 01 DB 01
00411E87 . 01 DB 01
00411E88 . 01 DB 01
00411E89 . 01 DB 01
00411E8A . 01 DB 01
00411E8B . 01 DB 01
00411E8C . 01 DB 01
00411E8D . 01 DB 01
00411E8E . 01 DB 01
00411E8F . 01 DB 01
00411E90 . 01 DB 01
00411E91 . 01 DB 01
00411E92 . 01 DB 01
00411E93 . 01 DB 01
00411E94 . 00 DB 00
00411E95 . 00 DB 00
00411E96 . 01 DB 01
00411E97 . 01 DB 01
00411E98 . 01 DB 01
00411E99 . 01 DB 01
00411E9A . 01 DB 01
00411E9B . 01 DB 01
00411E9C . 01 DB 01
00411E9D . 01 DB 01
00411E9E . 00 DB 00
00411E9F . 00 DB 00
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: