Then you should start learning assembly language, but assembly language is hard to learn, I recommend before starting learning it you should learn at least one high level programming language(I suggest C/C++)
As a good assembly language book is Art of assembly language, read DOS 16-bit edition:
You must be registered to see links
Another assembly book is this:
You must be registered to see links
You should also have a copy of windows API help file a C Style(for refrence if you want to inject or understand what a API function does)
You must be registered to see links
You can also find windows C style API references on MSDN.
A Linux alternative for API is the Linux System call table
You must be registered to see links
For Linux the syntax is AT&T instead of using Intel syntax(if you know Intel syntax At&T syntax will be easy to understand), the syntax can be set from the debugger
Also you could try simple crack me tutorials, you can look on the net for them, but for unknown binaries(binaries that you don't know the source code, not built by you), I suggest doing them in a sandbox environment like virtual machines or containers.