I have seen some examples in "Foundation of cryptography" and "Efficient two party computation", in which simulator can do some things that in the real world model the parties cannot do, for instance:
In "Foundation of..." page 660, Coin Tossing protocol, the simulator first receives the result from trusted third party (TTP) without sending the parties input to it. My question is why can it do so, where in the real protocol the parties exchange their input first.
In "Efficient two..." page 140, full simulation oblivious transfer, the simulator:
(a) Can receive the adversary input to underlying zero knowledge and extract its secret value. This is not possible for an honest party in the real world model.
(b) The simulator (despite using some incorrect input to zero knowledge) makes the adversary believe that the zero knowledge proof is verified, where it would not occur in the real world model.
Main question: What can and cannot the simulator do when simulating the real world?