I know this kind of goes against the whole point of opaque data types, but for the purpose of reverse engineering, how do people go about looking into opaque data types?
How do I see inside opaque data types?
473 Views Asked by thepufferfish At
2
There are 2 best solutions below
Related Questions in C
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in REVERSE-ENGINEERING
- How to break code on a click event?
- How to increment versionCode using APKTool?
- Alloy traces and projection issues
- Understanding assembly of a simple C program
- Bomb lab phase 5
- I am not able to generate hibernate.reveng.xml
- Database reverse engineering tool with columnDefinition support
- Unable to see all the classes in an android application using AndBug tool
- Reverse engineer database in spring data rest
- Entity Framework 6.1 - debug t4 script execution with customized code first reverse engineering
- Differences between call, push+ret and push+jump in assembly
- Bomb lab assembly explanation
- Android bytecode: value of some variables not defined
- Reverse engineering proprietary magnetic card formats
- How many arguments are passed in a function call?
Related Questions in INFORMATION-HIDING
- Reducing the visibility of a static method
- How to change or camouflage address bar url?
- Writing/implementing an API: testability vs information hiding
- Information hiding. When it is security and when is software weighting?
- Is it okay for decorators to access private members of a class?
- How to organize Java-Project without packages?
- How to hide a secret key on a user's machine(NOT your own server)?
- Hiding type parameters that are implementation details
- How do you hide data from all but once class?
- How does hiding information help in modularization?
- Data destruction
- How to formulate pylint rule to allow private variable starting with `__`
- Count number of instances using a metaclass in Python
- How do I see inside opaque data types?
- Hiding implementation by forward declaration
Related Questions in OPAQUE-POINTERS
- Initialize an AudioConverterRef Swift 3.0
- C++ hiding inherited class?
- Opaque Structure Pointer
- C++ Communicating private data from opaque pointer
- Is there a way to make clang aware of custom opaque type reference counting?
- Opaque data type in C
- How to call C functions involving opaque pointers from Fortran 2003 correctly?
- SQL syntax error throwing near "CLUSTERED": syntax error
- How do I see inside opaque data types?
- How do I create a module in MISRAC:2012 that follows Dir 4.12 and 4.8?
- templated opaque forward declaration
- Opaque pointer not accessable from resident .c file
- Opaque struct in C++ as class member
- Dealing with opaque pointers in pybind11
- How to print a double pointer value in C
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Unless you already have the source, there is no feasible way to "hack inside" an opaque type without having a clue of the underlying representation on a specific system. Hacking it would involve following each access to the opaque pointer in run-time and see where it goes, then start guessing from there.
Instead, you could Google for example the glibc source at Github. In stdio.h there is a conditional typedef which points either at
__fpos_tor__fpos64_tin internal headers:__fpos_t.h
__fpos64_t.h
Not very exciting, but you can continue to trace those various types at Github from there and see what they boil down to in the end. Integers and enums, most likely.