Obfuscation and understanding c# dll modules - module

learning about c# .dll obfuscation but first I think I need to understand modules, still searching but not making any real progress.
Meanwhile can I ask if anyone can point me in the right direction?
tried google "dll modules" but really wanted to find a detailed technical discussion.

Related

How can I take an injected dll and export it as its own dll file?

I'm trying to take a dll which, upon injecting itself, will unpack itself, however when inactive will stay packed with no real needed information. How can I take the dll after it has been injected into a process and extract it? I've tried searching online for answers, however I cant seem to find anything recent and related to my question. If you have any questions feel free to ask, as well as feel free to tell me how I can improve my question. Thanks!

Alternatives for Using MATLAB Files and Deploying Them into DLL's

I have some source code for the BaNa Noise Resilient Pitch Detection Algorithm downloaded here, and I am planning to use the code they provided as a library for a mobile app I'm making. It's written in Objective-C for MATLAB and so I'd probably need to deploy it to a DLL to be able to use it for external applications.
The only thing is that I'm a student, and I don't really have the funds to purchase MATLAB just to be able to work with this algorithm, and so I'm downloading Octave, which was a suggested alternative. This should be able to make working and editing the code for my research possible, but my concern is if I can deploy the code into usable libraries for the application in which I'm going to make using the Unity Game Engine.
I'm not sure if the direction I'm going at will bring me to a dead-end or not, so I'd like to ask for insights regarding this.
What I have now:
1) Source code in MATLAB (.m files)
2) Octave (currently downloading, I'm not even sure if it has the built-in methods I need)
What I plan to do:
1) Use Octave to edit code and test out if the code I have works
2) Deploy it to a DLL file (Is this even possible with Octave?)
3) Use that DLL in Unity3D
Would you guys have any suggestions, alternative workarounds, or foreseeable problems I may encounter with this? Any advice would be greatly appreciated.
Thank you in advance,
Justin
Depending on what functionality from MATLAB (and especially toolboxes), the code should run just fine in Octave, maybe with some minor modifications. If however, the code relies heavily on some toolbox functionality that has not been implemented in Octave, then you have a fair amount of recoding to do.
There is not easy way that I know of to generate a DLL from Octave. Having said that, have a look at How do I create a simple Octave distributable without installing Octave and this section of the Octave documentation on the subject of generating standalone programs from Octave, it might point you in the right direction.

How to use Pronexus DLLs

I am supposed to do a IVR project using Pronexus. After downloading their DLLs, my code hit COMExceptions regularly. I have searched the net and learned about Component Object Model. Now I am in trouble as I do not know how should I write my codes to extend from the DLLs that is accessing unmanaged codes.
So my question is, can someone point me to a direction how can I proceed from here? Should I learn how to code with COM libraries? Any good sources to recommend?
Found a clue from msdn.microsoft.com/en-us/library/ms973872.aspx (good read for developer new to Component Object Model)

cryptoapi for dummies

Can some one point me to some books or online resources to help learn about the windows cryptoapi package? I did find "Cryptography for Visual Basic" by Richard Bondi. I'd be more interested in something aimed at C++ or the package in general. The MDSN is overwhelming!
Here is a simple tutorial that could point you in the right direction. I hope it helps.
http://www.codeproject.com/KB/security/EncryptionCryptoAPI.aspx
MSDN can be overwhelming however there are some pieces of light. This page would provide you some context:
http://msdn.microsoft.com/en-us/library/ms867086.aspx
In any case, it really depends on what are you planning to do. If you're just using CryptoAPI to perform cryptographic operations you're fine with MSDN or just have a look to Wincrypt.h (there's a lot of info inside that header).
However, if you're panning to develop you own CSP (cryptographic service provider) with or without hardware you would need further information.
If you give me more details I can point you to the appropriate place (I did both things time ago).
Regards

When should you start using an IDE when learning a language? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I didn't find a question on this while searching SO but if anyone does please tell me.
There are alot of questing on the pros and cons of IDE's and what IDE to use for this and that language, like "Why should I use an ide?" and "Are we too dependent on our IDE's?".
But as a beginner just starting to understand how to build GUI's with Swing and getting a grip on the workings of event handlers and whatnot I started to wonder, when should you actually start using an IDE to further productivity and not stifle the learning experience?
The intellisense function is really helpful but sometimes makes me feel lazy for not thinking that extra bit and looking things up in the book im reading or the api documentation.
However the ability to set flags in the code to step trough to find logical errors and actually go into the parent method are sometimes useful to get a better understanding about what goes on in the code.
I read somewhere that you should have a good grasp on the basics of a language before using the IDE, but what is the basics? And what is good?
The only downside to using an IDE would be using its tools and wizards and not understanding how the code they generate works. If you are using an IDE for code completion, syntax highlighting and debugging then that's great. If you are using it to generate GUIs that you can't build by hand or generate Web Service code that you don't know how it works, then that's bad. But that's bad regardless of whether you're a beginner or not.
Your instincts are right. Understand how things work and how to code things by hand before just trusting the tool blindly.
An IDE is a tool you should use from the start. Understanding how languages work is important but memorising every little detail, not so much. A builder would no more learn how to make a mud hut with his barehands before building something with power tools than you should learn to program without using an IDE.
That said, you should be aware of what the IDE is doing for you so that in circumstances where you are faced without one, you know the things you need to make up for. An IDE can't write good code for you, it can't even tell you how to write good code, or suggest good code, it can only supplement your own skillset (at least right now, in 2009 - I can't speak for our robot IDE overlords of 3452).
Don't start with an IDE. Here's why:
I learned Java using Notepad and the command line. If I needed to know what methods a particular class had, I looked at the APIs online.
I did that for about half of a semester. Then we switched to Eclipse.
Doing it that way, I became very familiar with the Java syntax, lots of the core libs, and how the Java 'compilation' and running process works.
People should never develop this way long term as it is terribly unproductive. But I feel it is the correct/best way to begin learning a language.
Don't start with an IDE.
I would suggest using an IDE right off the bat...but not worrying about most of the functionality. As you learn the language and become more familiar with processes, aspects of the IDE will suddenly become obvious at the right times.
I don't think you should get too hung up on delaying using an IDE. Let's face it, in the real world, you'll be using that IDE pretty much all the time.
When you're initially learning, I think the most important thing is to use the IDE, but know what it's doing.
For example, when Visual Studio.NET first came out, and I played with it and wrote my first "Hello World" app, then clicked the "green go button" (!), I watched the output window with all of it's information. I then looked at the help documentation to see that this is really just calling out to csc.exe and piping it's text output back into an IDE window. So I went off and started invoking csc.exe myself from the command line and saw it's parameters that it would accept. Then I jumped back into the IDE and saw how GUI checkboxes related to the csc.exe parameters.
This way, I started using the IDE straight away, but also learnt what the IDE is doing with regards to "shelling out" to command line based utilities.
From here, I even tried typing my first C# program in Notepad and compiling it from the command line. But I wouldn't get too hung up on it, though. Let's face it, in the "real world" you're very unlikely to need to do it. I was good to scratch the itch of my curiosity, though!
IDE saves you time and energy. I have no problem of using IDE even as beginner. It only helps.
If you know the ide well, it will help you explore a new language/technology that it supports.
If you don't know the ide, better don't use one at first. Use a simple text editor (notepad++ on windows), command line, and the official reference.
I think that you should be able to manually do anything that the Intellisense is doing for you automatically. For example, you should know what function you want to type before hitting Intellisense.
Well, if you're expirienced in other languages or just might have worked with them, then use IDE right away.
But for complete beginners, I wouldn't suggest it.
It doesn't have to be one or the other - try both. Life's short enough ;-)