12
votes
How do I reverse engineer .so files found in android APKs?
Use android-ndk, https://developer.android.com/ndk/downloads/index.html.
You can use the toolchains inside the ndk to perform the type of disassembling you want to. For e.g. if I decompile an apk and ...
- 121
9
votes
Accepted
Protect data stored in binary
I would start with not have critical strings in memory in linear manner
Instead each character can be offseted by some offset like by table mixing all the strings together. For example you got ...
- 1,384
9
votes
Accepted
How to deobfuscated javascript?
UPDATE
Based on @ws's comment and @nderscore's code, use this JSFiddle to decode the thing.
To find the password that this script asks for, you can use a simple debugging trick.
Go to JSFuck and ...
- 1,283
8
votes
How are obfuscators detected?
I wouldn't say that obfuscation detection is strictly related to entropy.
When I detected obfuscated code areas I did it by simple statistical comparison of probabilities of appearances of specific ...
- 8,125
8
votes
Best way to protect source code of .exe program running on Python?
There are ways to make a Python program hard to reverse engineer. Its' possible but you need to fiddle with the Python source code (which is written in C) and compile a special build for your purpose.
...
- 5,940
7
votes
Accepted
Is there a name for this kind of "obfuscation" for the machine code from C++?
Unfortunately it is not enough code to say exactly what it is, but,
as @0xec said, it looks very much like control flow flattening.
Usually such kind of code transformations are done automatically ...
- 8,125
7
votes
Why doesn't this retn instruction return from the function?
The address of sub_1313cba4 is moved to PC/IP but not directly, as this cannot be done. It is done by pushing the address to the stack and relying on the fact that retn will get what's on the top of ...
- 4,652
7
votes
Accepted
Why do obfuscators remove line numbers, and can I safely leave them in?
Stripping line numbers has a minimal impact on the difficulty of reverse engineering code. If it is causing you problems, I would recommend disabling it.
Col-E's answer is a red herring because it is ...
- 1,972
6
votes
Protect data stored in binary
There are a number of ways to accomplish what you've stated. Generally, more robust techniques, while affording a higher level of protection, will also put more burden on the programmer creating the ...
- 2,511
6
votes
What is a good tools to reverse the effects of Minify on JavaScript?
I recently tried http://www.jsnice.org/ on 50+KB of a single minified JavaScript file containing lots of dynamic modification code that Cordova's runtime refused to execute (for an app targeted at ...
- 161
6
votes
Determining CRC algorithm (16 bit?) over RS-232
I figured it out! Some of the comments on this web site made me go back and think harder - actually to think differently.
I thought that I should post the analysis that I did on these messages to try ...
- 121
5
votes
Accepted
AirPlay Mirroring decryption (FairPlay)
I have spent some time to look into Apple's airplay mirroring support, which is encrypted by fairplay protocol. After investigating serveral existing commercial applications I have finally managed to ...
- 66
5
votes
Writeup of reverse engineering VM based obfuscation
Here is a pretty old challenge with, among other stuff, a VM in the end. You have both the write-ups of many candidates, and the official write-up of the author, with explanations as how to do such VM-...
- 565
5
votes
Accepted
How to obfuscate x86 assembly code?
You should not confuse "code protection" and "code obfuscation". "Code protection" techniques target in recognizing code modifications (you mention a checksum) and take suitable means like crashing or ...
- 1,924
5
votes
Is there a name for this kind of "obfuscation" for the machine code from C++?
Here's a blog post describing this technique in a little more detail as well as some hints on how to undo it:
https://blog.quarkslab.com/deobfuscation-recovering-an-ollvm-protected-program.html
EDIT
...
- 35.5k
5
votes
Accepted
Obfuscated code analysis - can unused variables be ignored?
This might be true that those variables are added only to confuse analysis but remember that in Javascript there are so many ways to access the variable that I would take such info from an automated ...
- 4,652
5
votes
Jump in the middle trick
Yes, this is indeed possible to employ consistently throughout the entire assembly listing, making manual analysis or adjustments a pain.
Disassemblers are often divided into two categories:
linear ...
- 11.5k
5
votes
Trace Method Calls in .NET/C# Binary
that instrumentation is not easily possible because of JIT compilation of IL instructions.
Well it's actually the opposite. Tracing methods is quite easy - it would be difficult if we would like to ...
- 4,652
5
votes
Accepted
Stack-pointer analysis failed
When I assembled the code, the offending instruction was:
0x6c 40 ff d1 call rcx
You will need to use Change Stack Pointer command in IDA to fix this in disassembly. As ...
- 1,155
4
votes
Accepted
How to start learning reverse engineering to eventually help exploiting of modern consoles like Xbox One, PS4?
Some things you will inevitably have to know at some degree to be able to reverse engineer Game Consoles:
Learn a lower level language such as C or C++. Most, if not all, Console games, modern and ...
- 158
4
votes
How do I reverse engineer .so files found in android APKs?
You can also reverse-engineer APK files directly on an android device.
Java part: Show Java
.so files: Android disassembler.
(Disclaimer: I 'm the developer)
Version 1.4.2 release.
Android-...
- 321
4
votes
How do I reverse engineer .so files found in android APKs?
You can also try the Snowman tool: https://derevenets.com/.
Snowman is a native code to C/C++ decompiler
It supports ARM, x86, and x86-64 architectures as specified on their website.
- 41
4
votes
Which virtualized target is recommended for newbie on vm-obfuscation?
You should take a look at crackmes.de, especially level 6, like this one, or this one.
- 2,496
4
votes
How does PeID calculate entropy?
This is exactly a problem I dealt with several years ago because we also wanted to implement a close-as-possible solution for a project formerly based on PeID.
Fortunately, in those days I found an ...
- 51
4
votes
Any good deobfuscators for java?
Proguard's "optimisation" stage results in deobfuscating junk as I wrote up here - http://www.surrendercontrol.com/2016/03/using-proguard-to-deobfuscate-code.html.
Also, Caleb Fention's Simplify ...
- 843
4
votes
Accepted
Distribution of malware obfuscation types
Unfortunately it seems so that there are no existing publications/statistics from av vendors. Reffered to [A] and the mentioned entropy analysis, 90% of the used samples are obfuscated by a ...
- 1,237
4
votes
Accepted
reverse javascript crackme encryption method algorithm
To extend on EWD-0- about the reversibility of RC4 here's how I tried it:
From your actual code and reversing it a little to get "input128" encoded:
arr = [99, 116, 115, 37, 16, 120, 211, 90, 197, ...
- 156
4
votes
Exe protection by TLS callback, trying to understand the behaviour
It is an old anti-debugging trick to use the TLS callback. The code in the TLS gets executed before the executables entry point and the debugger gains control. This allows the TLS to check for the ...
- 41
4
votes
How to deobfuscate native Android library obfuscated with OLLVM?
You're in luck; I wrote an article about that last year. I didn't know at the time that the obfuscator in question was Obfuscator-LLVM, but indeed, it was (albeit a version that was integrated into ...
- 8,224
3
votes
Accepted
Debugging Win32.Upatre - why does Ollydbg fail to analyze this?
About the "??3@YAXPAX" calls, it is called Name Mangling, take a look at this thread for more explanation.
"YAXPAX" calls are actually the delete C++ operator.
About the __set_app_type, ...
- 578
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
obfuscation × 154deobfuscation × 45
javascript × 20
disassembly × 17
encryption × 13
ida × 12
assembly × 12
malware × 12
decompilation × 10
android × 10
java × 9
.net × 9
windows × 7
binary-analysis × 7
x86 × 6
c++ × 6
tools × 6
unpacking × 6
c × 5
python × 5
decryption × 5
debugging × 4
file-format × 4
static-analysis × 4
anti-debugging × 4