But I know that olldbg can modify itself's binary file.

Can you elaborate what you want to accomplish here?
I submited the details.
不能保存到原来的文件,只能保存为新文件。
What do you mean by "modify its binary file"? x64dbg can do this too, here are the steps:
I don't speak Chinese, so I don't know what the error message in your screenshot is saying. But the only way I can interpret this thread is as "why can't I overwrite this executable that is simultaneously running in not in one but two different processes at the same time?". The answer is: you can't, and in this particular case (screenshot above) you double-can't. Every executable image (including drivers and DLLs) is backed by a reference counted kernel section object, whose refcount will only reach zero after process termination/image unload. Until then, you don't get to write to the file, end of story (*).
(*) There are some loopholes if you really want to do it, like starting a thread in heap memory, unmapping the image section and then overwriting the original file. I guess that technically counts, even though you killed the process? I dunno.