Method for executing, with a microprocessor, a binary code containing a calling function and a called function, which is called by this calling function, this method comprising the following steps: a) delivering the binary code, the delivered binary code containing a machine code containing: - a prologue of a call to the called function, this prologue containing a branch instruction that, when it is executed by the microprocessor, causes a branch to the first instruction line of the called function, and - an epilogue of the call to the called function, this epilogue containing a branch instruction that, when it is executed by the microprocessor, causes a branch to an instruction line of the calling function located at a return address, b) executing the binary code with the microprocessor, the method comprising, during this execution: - executing (234, 238) the prologue and epilogue of the call to the called function, and - between the execution of the prologue and of the epilogue, saving, by means of the called function, data in a call stack, characterized in that: - the execution of the prologue by the microprocessor comprises encrypting the return address of the calling or called function and saving the return address thus encrypted in the call stack, this encryption being carried out using a first value (iv a) that is not used when data are saved in the call stack by the called function and that is independent of the address at which the return address thus encrypted is saved in the call stack, then - the execution of the epilogue by the microprocessor comprises decrypting, using said first value (iv a), the encrypted return address saved in the call stack, then - branching to the instruction line identified by this decrypted return address. a) delivering the binary code, the delivered binary code containing a machine code containing: - a prologue of a call to the called function, this prologue containing a branch instruction that, when it is executed by the microprocessor, causes a branch to the first instruction line of the called function, and - an epilogue of the call to the called function, this epilogue containing a branch instruction that, when it is executed by the microprocessor, causes a branch to an instruction line of the calling function located at a return address, - a prologue of a call to the called function, this prologue containing a branch instruction that, when it is executed by the microprocessor, causes a branch to the first instruction line of the called function, and - an epilogue of the call to the called function, this epilogue containing a branch instruction that, when it is executed by the microprocessor, causes a branch to an instruction line of the calling function located at a return address, b) executing the binary code with the microprocessor, the method comprising, during this execution: - executing (234, 238) the prologue and epilogue of the call to the called function, and - between the execution of the prologue and of the epilogue, saving, by means of the called function, data in a call stack, characterized in that: - the execution of the prologue by the microprocessor comprises encrypting the return address of the calling or called function and saving the return address thus encrypted in the call stack, this encryption being carried out using a first value (iv a) that is not used when data are saved in the call stack by the called function and that is independent of the address at which the return address thus encrypted is saved in the call stack, then - the execution of the epilogue by the microprocessor comprises decrypting, using said first value (iv a), the encrypted return address saved in the call stack, then - branching to the instruction line identified by this decrypted return address. - executing (234, 238) the prologue and epilogue of the call to the called function, and - between the execution of the prologue and of the epilogue, saving, by means of the called function, data in a call stack, - the execution of the prologue by the microprocessor comprises encrypting the return address of the calling or called function and saving the return address thus encrypted in the call stack, this encryption being carried out using a first value (iv a) that is not used when data are saved in the call stack by the called function and that is independent of the address at which the return address thus encrypted is saved in the call stack, then - the execution of the epilogue by the microprocessor comprises decrypting, using said first value (iv a), the encrypted return address saved in the call stack, then - branching to the instruction line identified by this decrypted return address.