次のコードがあります
void PacketEncrypt(Packet* packet, int sizeofpacket)
{
int* pointer;
pointer = ((int*)packet+sizeofpacket)-2;
(int)*pointer = packet->PacketSize^0x1A3C;
packet->Type += 0x0FFF7;
}
問題は、コンパイラが次のように設定してデバッグするときです。
0041585E 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
00415861 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
00415864 8D5481 F8 LEA EDX,DWORD PTR DS:[ECX+EAX*4-8]
しかし、私が本当に欲しいのは:
0041585E 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
00415861 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
00415864 8D5481 F8 LEA EDX,DWORD PTR DS:[ECX+EAX-2]
私は C++ に慣れていないので、私が間違っていること、またはコンパイラがスカラー *4 を追加する理由について教えてもらえますか? ありがとう !