Manual Decompilation References [closed] - c++

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm looking for book titles or papers about how to decompile X86 Disassembly into C/C++ code MANUALLY.
Well , I know about many tools that do the job , but I think doing it manually is more efficient even if it's a slow process.

If you are VERY used to looking at disassembly from a particular compiler, you MAY be able to come up with decent C or C++ code. But it's a TERRIBLY slow process even then. Just taking one small function (say a for-loop, a couple of if-statements and some basic math) and reconstructing it back into source code can take half an hour for me, and I don't think I'm terribly bad at it. Of course, one of the main points is identifying commonly used algorithms, such as linked lists, binary trees, string management, vector management, etc.
Doing it by machine will give you a lot of the work done for you, but even then, it can take days to do even a few hundred lines of orginal C++ code into something that is actually readable.

Related

How to find compiler implementation details? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
It is well known that switch-case constructs can provide better code performance than if-else constructs due to implementation in the form of jump-tables,etc. You can know this only when you know how the compiler implements switch-case. So my question is that how do you get to know how a compiler, for example, Microsoft C++ Compiler or g++, implements a feature? Is there some standard literature available on these topics with respect to common compilers?
It is not very useful to get information on how will a compiler implement a feature because the compiler runs multiple steps, each will modify the compiled result.
As an example:
A first step build up a meta language, a second step do a first optimization, next step maybe inline some code, next step...
So you can't get any idea of the code which will be created. So only chance you have: Try it out!
For your example of a switch/case it is important if
the case patterns are linear
the code inside the pattern is used once or multiple
the code return or modify variables or only call other functions
4 ... tons of other dependencies!
Forget about prediction of optimizer results.
For gcc you have the source, look inside :-)

Clojure projects worth reading? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
The best way to learn a new language is reading well structured and well documented projects that use the language constructions in the proper way.
What are the best clojure repos to read and learn from them?
Clojure itself.
Clojure in Small
Pieces:
Clojure 1.2 as a literate program.
There's lots of advice here and here.
Thereafter, I would follow your nose. Find the stuff you are interested in: if it's good, enjoy it. If it's bad, do it better!
Be warned: Clojure is seriously addictive.
I often read https://github.com/aphyr (in particular https://github.com/aphyr/riemann). He writes a lot of Clojure and it's very often well documented and organized.
Others I crib from liberally:
https://github.com/ztellman
https://github.com/ring-clojure/ring

how do I make the jump from understanding C++ as a language to understanding all the acronyms that go with job postings [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 8 years ago.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
This question appears to be off-topic because it lacks sufficient information to diagnose the problem. Describe your problem in more detail or include a minimal example in the question itself.
Improve this question
This is a difficult question to phrase, but hopefully I can make it more transparent. Basically, I've taught myself (after a couple of grounding classes in college) how to write and compile C++ code. I have written a small handful of actual programs in Visual Studio and learned to compile them as standalone EXEs. I feel competent that if someone came up to me and said "I want you to have a program that does X, Y, and Z within the confines of the standard library," I would be able to figure it out and present something.
However, there appears to be a chasm between this and what I see when I check out Freelancer.com, Craigslist, and other sites for jobs, internships, and gigs. There are acronyms and references to I'm-not-sure-what (example post here: https://www.freelancer.com/projects/Data-Processing-CPlusPlus-Programming/Build-hash-table-using-chaining.html)
Basically, it's fine if everyone agrees there's a chasm here. I just want to know where to look to find the bridge :) Any reading materials / specific online class / etc. that I could look into? Any assistance would be stupendous.
Thanks!
The answer is simple, experience. You don't have a lot yet, and its a lifelong process.
There is no secret, or shortcut, besides reading and participation and doing. Just like learning new vocabulary words, when someone uses a term you don't know, either look it up, or ask them to explain.
Until you are comfortable with those acronyms, you probably want to stay away from a job ad that explicitly requires that particular skillset, because a good interviewer will figure out if you just Googled something last night or if you used it for the past 3 years on a project. Instead, look for junior programming jobs that care more about getting an energetic grad with a good ethic, and low salary requirements than a senior person. Good luck.

finding static scheduling of DAG for multiprocessors - library? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have a graph of the dependencies of all tasks, and the costs of each task. Now I want to calculate a scheduling for a given amount of CPUs. I've found many papers on scheduling algorithms, optimal schedulers seem to be too expensive for my problem size (around 100 nodes) as it's an NP-hard problem. I'd settle for a heuristic, preferably one that has a bound how close it gets to the optimum. My problem now is: do I really have to code it myself?? This should have been solved many times before, it can be easily applied to project management, maybe there something exists?
If you happen to know a library in python that'd be perfect or the next best thing would be C++, otherwise i'd settle for anything else.
This is a pretty common problem. It also shows up in hardware design.
There has been a lot of work on algorithms to solve it.
If you are going to write something yourself, start by checking out "Hu's Algorithm".
If you just want a solution, these functions are built into architectural synthesis programs.
Look at the Wikipedia pages on high level synthesis and logic synthesis.
There are several professional tools that can handle this, if you can get access to them through school or work.
There are university programs you can often get for free that can also handle this problem.
I'm not up-to-date on what is currently available. An very old one is MIS II from Berkeley. It's scripting language was Tcl, not Python.

Very easy to use 2d (optionally 3d) drawing library / wrapper for directx or opengl? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm studying physics and I know C++ at a basic level. at my study it's sometimes really useful to create a program which can graphicly represent some data or do calculations and then graphicly represent them. I read that, for example, to be able to master the basics of openGL I would need to do a 10 week long course of openGL. But that is too much time.
I'm wondering if there are any libraries available (for windows) which allow me to do some easy stuff like:
-DrawPixel(x,y,color)
-DrawCircle/Line/Shape/Polygon([list of points])/Triangle/Square (+rotation)
-DrawImage(filename,width,height,etc...)
-DrawText()
Is there any library which has this easyness? It would be really cool because if I do something (create a program) and I need to explain my team (who have never programmed) how I have done it (the program / results), this would make it much easier to explain!
I looked at SDL, HGE, OpenFrameworks (somewhat the "closest" yet still far away) and a few other popular libraries but they are all so far away.. why is there no such easy library?
Are there any available which are just not being found with the keywords i search in google?
I would suggest that you take a look at cinder. Try out the Hello Cinder tutorial. I think you will find it supports your needs by providing an abstraction layer above DirectX or OpenGL.