IBM Interview Question
Software Engineer / Developersdont try to be too smart dude..this is learning forum n there r nice way to say such thing.dont demoralize anyone.
hmm.. how about the dll calling other header files within it which are unknown. or maybe the dll calling other dlls.?
something that the user cannot track.
I think what they meant by reverse engineering dll's is that we can try to reverse engineer dll's especially the ones that are of OS and find out security flaws in the code and run bad programs on your computer.
To avoid reverse engineering of dll's to some extent. The program execution flow should be very random in a way it is not comprehensible. We can also add lot of obfuscated code to avoid reverse engineering. i.e. add garbage code to just confuse the people who are trying to reverse engineer.
I think what they meant by reverse engineering dll's is that we can try to reverse engineer dll's especially the ones that are of OS and find out security flaws in the code and run bad programs on your computer.
To avoid reverse engineering of dll's to some extent. The program execution flow should be very random in a way it is not comprehensible. We can also add lot of obfuscated code to avoid reverse engineering. i.e. add garbage code to just confuse the people who are trying to reverse engineer.
I think what they meant by reverse engineering dll's is that we can try to reverse engineer dll's especially the ones that are of OS and find out security flaws in the code and run bad programs on your computer.
To avoid reverse engineering of dll's to some extent. The program execution flow should be very random in a way it is not comprehensible. We can also add lot of obfuscated code to avoid reverse engineering. i.e. add garbage code to just confuse the people who are trying to reverse engineer.
I think what they meant by reverse engineering dll's is that we can try to reverse engineer dll's especially the ones that are of OS and find out security flaws in the code and run bad programs on your computer.
To avoid reverse engineering of dll's to some extent. The program execution flow should be very random in a way it is not comprehensible. We can also add lot of obfuscated code to avoid reverse engineering. i.e. add garbage code to just confuse the people who are trying to reverse engineer.
What I believe that is the correct answer is the following:
First of all, you cannot PREVENT anyone from reverse engineering a DLL, you can only make his/her life a bit harder, but if there's something that I learned for sure is that everything can be reverse engineered.
Few basic examples of methods of making people lives harder are:
* Remove all debug symbols
* Obfuscate symbols that you must export, also obfuscate strings
* contain an "encoded" blob of your code in the DLL, and load it on run time. Combined with anti-debugging methods it makes the reverser life a bit harder.
For all of the methods I mentioned there are "anti" methods, and these have "anti-ati" etc...
Bottom line, everything can be reversed. Algorithms are usually the hardest to reverse engineer from pure binary, but it's possible as well.
"what's a DLL" - must be from a recent Indian grad...don't know the answer - google it or post a question on one of the multitude of websites, and pretend you're an expert
- "what's a DLL" June 01, 2009