Pues yo insisto en que el problema son las verificaciones run-time que agrega VS a las funciones.
Quité Run-Time Error Checking en las opciones del proyecto, compilé el programa (con VS2015), y no hubieron más crashes.
Función inyectada con RTC activado:
Función inyectada sin RTC:
Quité Run-Time Error Checking en las opciones del proyecto, compilé el programa (con VS2015), y no hubieron más crashes.
Función inyectada con RTC activado:
Código ("ASM") [Seleccionar]
023C0000 55 PUSH EBP
023C0001 8BEC MOV EBP,ESP
023C0003 81EC DC000000 SUB ESP,0DC
023C0009 53 PUSH EBX
023C000A 56 PUSH ESI
023C000B 57 PUSH EDI
023C000C 8DBD 24FFFFFF LEA EDI,DWORD PTR SS:[EBP-DC]
023C0012 B9 37000000 MOV ECX,37
023C0017 B8 CCCCCCCC MOV EAX,CCCCCCCC
023C001C F3:AB REP STOS DWORD PTR ES:[EDI]
023C001E 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
023C0021 8B08 MOV ECX,DWORD PTR DS:[EAX]
023C0023 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
023C0026 8BF4 MOV ESI,ESP
023C0028 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
023C002B 8B48 50 MOV ECX,DWORD PTR DS:[EAX+50]
023C002E 51 PUSH ECX
023C002F 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]
023C0032 83C2 36 ADD EDX,36
023C0035 52 PUSH EDX
023C0036 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
023C0039 83C0 04 ADD EAX,4
023C003C 50 PUSH EAX
023C003D 6A 00 PUSH 0
023C003F FF55 F8 CALL DWORD PTR SS:[EBP-8]
023C0042 3BF4 CMP ESI,ESP
023C0044 E8 09E6FFFF CALL 023BE652 ; _RTC_CheckEsp
023C0049 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
023C004C 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
023C004F 8985 24FFFFFF MOV DWORD PTR SS:[EBP-DC],EAX
023C0055 33C0 XOR EAX,EAX
023C0057 5F POP EDI
023C0058 5E POP ESI
023C0059 5B POP EBX
023C005A 81C4 DC000000 ADD ESP,0DC
023C0060 3BEC CMP EBP,ESP
023C0062 E8 EBE5FFFF CALL 023BE652 ; _RTC_CheckEsp
023C0067 8BE5 MOV ESP,EBP
023C0069 5D POP EBP
023C006A C3 RETN
Función inyectada sin RTC:
Código ("ASM") [Seleccionar]
023A0000 55 PUSH EBP
023A0001 8BEC MOV EBP,ESP
023A0003 83EC 4C SUB ESP,4C
023A0006 53 PUSH EBX
023A0007 56 PUSH ESI
023A0008 57 PUSH EDI
023A0009 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
023A000C 8B08 MOV ECX,DWORD PTR DS:[EAX]
023A000E 894D FC MOV DWORD PTR SS:[EBP-4],ECX
023A0011 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
023A0014 8B48 50 MOV ECX,DWORD PTR DS:[EAX+50]
023A0017 51 PUSH ECX
023A0018 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]
023A001B 83C2 36 ADD EDX,36
023A001E 52 PUSH EDX
023A001F 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
023A0022 83C0 04 ADD EAX,4
023A0025 50 PUSH EAX
023A0026 6A 00 PUSH 0
023A0028 FF55 FC CALL DWORD PTR SS:[EBP-4]
023A002B 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
023A002E 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
023A0031 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX
023A0034 33C0 XOR EAX,EAX
023A0036 5F POP EDI
023A0037 5E POP ESI
023A0038 5B POP EBX
023A0039 8BE5 MOV ESP,EBP
023A003B 5D POP EBP
023A003C C3 RETN