memcpy can cause to stack overFlow?
memcpy get the number of bytes to copy, so what is the problem , and how
memcpy_s fix it?
Reverse Engineering Stack Exchange is a question and answer site for researchers and developers who explore the principles of a system through analysis of its structure, function, and operation. It only takes a minute to sign up.Sign up to join this community
A buffer overflow happens when a program tries to write too much data into a buffer, or other data structure. The extra data "overflows" the buffer writes over the data structure immediately following the buffer in memory. memcpy allows you to specify the number of bytes to copy, but if that value varies, such as when it is dependent on user input, then your destination buffer might not be big enough. The wikipedia page has a good example.
memcpy_s has an additional parameter, where you can specify the destination buffer size. This allows memcpy_s to perform additional checks on the input, and error if the number of bytes to copy is greater than the destination buffer size.
For a good introduction to exploit analysis, see this course material and videos. Full disclosure: I am a contributor to that website, though not to that particular class material.