|

本帖最后由 萌菌团 于 2019-3-9 10:58 编辑
|
myLogType | | |
code | 整数型 | | | typeStr | 文本型 | | | strColor | 整数型 | | | bgColor | 整数型 | | |
|
getMyLogType | 逻辑型 | | |
typeCode | 整数型 | | | | myLogType | myLogType | | | |
计次循环首 (取数组成员数 (myLogTypes ), i ) 如果真 (myLogTypes .code = typeCode )  myLogType = myLogTypes  返回 (真)  计次循环尾 ()返回 (假)|
getTypeColor | 整数型 | | |
typeCode | 整数型 | | | | BgColor | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | tmp | 整数型 | | | myLogType | myLogType | | |
判断 (typeCode ≤ -1000 )  判断 (getMyLogType (typeCode, myLogType ))   tmp = 选择 (BgColor, myLogType.bgColor, myLogType.strColor )  tmp = -1    tmp = call_getTypeColor 置入代码 ({ 255, 117, 12, 255, 117, 8, 255, 85, 252, 137, 69, 252 })返回 (tmp)
getTypeColor方法对应汇编代码
- 17622488 55 push ebp
- 17622489 8BEC mov ebp,esp
- 1762248B 81EC 14000000 sub esp,0x14
- 17622491 68 10000000 push 0x10
- 17622496 E8 240B0000 call 演示测试.17622FBF
- 1762249B 83C4 04 add esp,0x4
- 1762249E 8945 FC mov dword ptr ss:[ebp-0x4],eax
- 176224A1 8BD8 mov ebx,eax
- 176224A3 C703 00000000 mov dword ptr ds:[ebx],0x0
- 176224A9 C743 04 0000000>mov dword ptr ds:[ebx+0x4],0x0
- 176224B0 C743 08 0000000>mov dword ptr ds:[ebx+0x8],0x0
- 176224B7 C743 0C 0000000>mov dword ptr ds:[ebx+0xC],0x0
- 176224BE C745 F8 0000000>mov dword ptr ss:[ebp-0x8],0x0
- 176224C5 817D 08 18F*FF>cmp dword ptr ss:[ebp+0x8],-0x3E8 ; 判断typeCode小于等于-1000
- 176224CC 0F8F 53000000 jg 演示测试.17622525
- 176224D2 8D45 FC lea eax,dword ptr ss:[ebp-0x4]
- 176224D5 50 push eax
- 176224D6 FF75 08 push dword ptr ss:[ebp+0x8]
- 176224D9 E8 6AFEFFFF call 演示测试.17622348
- 176224DE 85C0 test eax,eax
- 176224E0 0F84 33000000 je 演示测试.17622519
- 176224E6 8B5D FC mov ebx,dword ptr ss:[ebp-0x4]
- 176224E9 83C3 0C add ebx,0xC
- 176224EC 895D F4 mov dword ptr ss:[ebp-0xC],ebx
- 176224EF 8B5D FC mov ebx,dword ptr ss:[ebp-0x4]
- 176224F2 83C3 08 add ebx,0x8
- 176224F5 895D F0 mov dword ptr ss:[ebp-0x10],ebx
- 176224F8 837D 0C 00 cmp dword ptr ss:[ebp+0xC],0x0
- 176224FC 0F84 0A000000 je 演示测试.1762250C
- 17622502 8B5D F4 mov ebx,dword ptr ss:[ebp-0xC]
- 17622505 8B03 mov eax,dword ptr ds:[ebx]
- 17622507 E9 05000000 jmp 演示测试.17622511
- 1762250C 8B5D F0 mov ebx,dword ptr ss:[ebp-0x10]
- 1762250F 8B03 mov eax,dword ptr ds:[ebx]
- 17622511 8945 F8 mov dword ptr ss:[ebp-0x8],eax
- 17622514 E9 07000000 jmp 演示测试.17622520
- 17622519 C745 F8 FFFFFFF>mov dword ptr ss:[ebp-0x8],-0x1
- 17622520 E9 14000000 jmp 演示测试.17622539
- 17622525 A1 FC806E17 mov eax,dword ptr ds:[0x176E80FC] ;大于-1000 , 将全局变量赋值给局部变量
- 1762252A 8945 F8 mov dword ptr ss:[ebp-0x8],eax ; 赋值这里出现异常, 变量在源码中处于第一位,那么这里应该是ebp-0x4,但实际却是ebp-0x8
- 1762252D FF75 0C push dword ptr ss:[ebp+0xC]
- 17622530 FF75 08 push dword ptr ss:[ebp+0x8]
- 17622533 FF55 FC call dword ptr ss:[ebp-0x4] ; 因为变量顺序出现异常导致call异常
- 17622536 8945 FC mov dword ptr ss:[ebp-0x4],eax
- 17622539 8B45 F8 mov eax,dword ptr ss:[ebp-0x8]
- 1762253C E9 00000000 jmp 演示测试.17622541
- 17622541 50 push eax
- 17622542 8B5D FC mov ebx,dword ptr ss:[ebp-0x4]
- 17622545 53 push ebx
- 17622546 83C3 04 add ebx,0x4
- 17622549 53 push ebx
- 1762254A 8B1B mov ebx,dword ptr ds:[ebx]
- 1762254C 85DB test ebx,ebx
- 1762254E 74 09 je short 演示测试.17622559
- 17622550 53 push ebx
- 17622551 E8 630A0000 call 演示测试.17622FB9
- 17622556 83C4 04 add esp,0x4
- 17622559 5B pop ebx
- 1762255A E8 5A0A0000 call 演示测试.17622FB9
- 1762255F 83C4 04 add esp,0x4
- 17622562 58 pop eax
- 17622563 8BE5 mov esp,ebp
- 17622565 5D pop ebp
- 17622566 C2 0800 retn 0x8
复制代码
|
|