An NOP does not change the value of something, it removes the operation present at that address in memory. Hence "No Operation Present".
Originally Posted by CAFlames
You would not be NOPing the string, you would NOPing the operation that Pushes the value of the string onto the stack.
Originally Posted by Sydney
Here is some of the radar function that is responsible for the NX chams.
Currently push offset aSkelmodelstenc is pushing a value of 0 onto the stack, meaning the Chams are not enabled. By removing that operation you are stopping the value from being pushed onto the stack, turning the chams on.
___:37347FF4 push edi
___:37347FF5 mov ecx, esi
___:37347FF7 mov [esi+1B0h], eax
___:37347FFD call sub_37347C30
___:37348002 push 1
___:37348004 push offset aSkelmodelstenc ; "SkelModelStencil"
___:37348009 call sub_373F9A60
___:3734800E mov ecx, off_3781BD50
___:37348014 mov edx, [ecx]
By writing the original bytes back, you are writing the original operation back, turning the chams off.