How can I protect my C++ application from being decompiled? [duplicate] - visual-c++

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
C#: How to Make it Harder for Hacker/Cracker to Get Around or Bypass the Licensing Check?
Protect C++ program against decompiling
How can I protect my visual C++ windows form application from being decompiled?
Is there a way?
Thanks guys !

If you want to protect it to a certain point from decompilation you can always use some protection software like an obfuscator or encrypter.
There is a vast number of products that can do this varying in price (from free to very expensive), complexity and implementation.
You might want to check http://www.safenet-inc.com/.

Related

writing a programmung language [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Suggestions for writing a programming language?
I have used many programming languages and after several years of experience I have finally decided to make a language with my friends. I know that this is a task not for the faint of heart. We are devoted to the task and are going to make sure that this gets completed.
Now I wanted to start off by asking: what are the steps to writing a programming language? What should we start off with (ex. The parser)?
Any answer is helpful!
If this is your first language, then work on all parts of it at the same time, start with a mini language spec and extend it feature by feature. Unless a its a domain specific language you should use a language that comes close to what you try to implement so that later you might be able to write a conversion tool to get a bootstrapping version of your compiler.

How do viruses function from a programming point of view? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I have always been fascinated by computer viruses. For years I have tired to learn about them, but due to their nature people are unwilling to give many details.
For what it is worth I'm not a hacker and am not trying to build a virus.
If anyone is willing to answer this question I want to know what makes a virus a virus and how they are different from spyware.
How can they install themselves onto a computer without you noticing?
And how do worms work? How can a program replicate and move on its own? Does it contain its source code within it? And does it interface with other programs or just assess the hardware directly to spread ?
EDIT: What language would they be written in? Would you use assembly/C++ types of languages or create them as scripts in lua?
Well, a worm is simply a self-replicating piece of software. Imagine a program that copies its executeable over some link to another computer and launches it there. That's not that much magic.
A virus is simply a worm which infects other executeables, i.e. it does not replicate its own image, but it "backpacks" it to a different application's image and uses that application's execution flow to get initiated.
The user does not notice anything if there are no side-effects, and no UI interaction.
If the user is a technically more competent than the average end-user, this is very hard to achieve. Some malwares host the target system in a virtual machine so you as the user have a hard time to see anything suspicious as long as you don't figure you look at a virtual machine. Like Neo, awaking from the Matrix.
As there is no limit to what you can implement in what language, there is no language of choice. Naturally, a low-level and natively-compiled language is more versatile to do what a virus/worm must do to stay low-profile. However, there are worms and viruses written in assembly language, Basic, C, Delphi, JavaScript, whatever -- there is nothing you can not imagine here.
Spyware has similar requirements, but different goals. While a virus, and a worm, usually spreads around, either for no reason or to drop some kind of payload at some point, spyware wants to either "phone home" or open the target system so it can be attacked, i.e. inspected, easier, usually in order to get hold of a victim's data that is secret, personal, or otherwise interesting.
Hope this quick answer helps a bit. You can google more details easily at bing :)

Can all applications be decompiled? [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
What types of executables can be decompiled?
It's pretty popular to decompile the Minecraft classes to edit and add your own mods. Is every Java application decompilable? Does it stop at Java applications?
I'm a little concerned about this, but no one else seems to be so maybe I just don't understand. What's stopping people decompiling Microsoft Word and making their own custom changes? Or decompiling World of Warcraft and stealing interesting bits of their code?
Byte code (as java and c# get compiled into) can easily be decompiled. There are ways around it as in obfuscation and other alternatives. C and C++ get compiled into native machine code, and is difficult to "decompile". But someone with the correct skillset could be able to reverse engineer it anyway.
Edit: Note that obfuscation will not make it harder to decompile the byte code - it will be just as easy, but the code will be harder to make any sense of.

Wish to learn a new programming language [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I wish to learn a new programming language but there are so many out there! So thought I'd ask here if there are any that correspond with what I wrote in this list that you might know of:
Making applications with GUI
That would preferably run on any system, preferably Windows (I run Windows 7)
That would not need a hardcore IDE and hopefully no compiling
That is not incredibly advanced (Hard syntax paired with OOP etc.)
That does not need any 'platform' or 'component' installed to work (can be opened with a click, say an .exe file or any other file type)
I already know:
HTML, JavaScript and PHP
Thanks in advance for your input.
I'd recommend Python to anyone.
You seem to have some mutually exclusive options here.
For example, no compiling and opening an .exe. An exe file is generated via compilation.
IMHO, Qt probably best suits your needs. It runs on just about everything, doesn't need an IDE (though qtcreator is a fantastic one, I suggest trying it before you choose not to use an IDE) and is easy to learn and well documented.
If you want compile-less then you'll need to use the python or other scripting language bindings too it.
I would suggest C-sharp / F-sharp combination with WPF thrown into that to get GUI's going...
It a pretty rough learning curve but the combinations are endless...
A couple things to certainly look into:
PRISM
M-V-VM ( Model , View, Viewmodel)
If you are interested in an other back-end persistancy try going into object databases, such a great new world opened up for me when I discovered all the things you can do with that... ( DB4O is my preferred one at this moment.. it has loads of info and a very active community )
It is only limited by your imagination ;)
This is one of those questions of having 10000 people going to an Ice cream shop and then choosing which flavour they want. So far I have worked with Delphi and C#, I am doing SQL, Asp.net and javascript, well, basically!
The answer should be somewhat simple. Go check out which programming language fits your needs, and is in great demand in the working world. If you want to program websites for companies, then PHP, ASP.NET and the older HTML is for you. As far as I know, flash is also coding.#
Another way to look at this question is not only the availability of the language you seek, but its future, if it will become obsolete or the coding language of the century.All coding is the same, but some are more rigorous in certain tasks (like C# and delphi are good languages to build forms applications to handle tasks for data manipulation, integration and whatnot.)
The answer to this question is to explore! What is Your flavour? Sitting in front of a desk doing CRUD operations and staring into a gui which has countless buttons and textb
oxes, but real in-depth code, or to start into a rich gui with XML based code?
I recommend HTML5+Javascript.
You can use Canvas or SVG for
graphic.
It works depending on the browser. So
any OS or system can use it.
Javascript and HTML can be edited in
any thing for example: notepad.
You can write your JS using OOP.
How to open a HTML file? just
double-click on it.
Have fun :)

How many programming languages do you use at one time? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
During a normal work-day, tackling a variety of tasks, there's the potential for several programming languages to be used.
There's application work, with C#, VB.NET, C++, Java, Fortran, then there's database work with involves SQL, and then there's maintenance work involving languages like Python, Perl, PHP, or even bash scripts and similar.
Which programming languages do you use, for which task, and why?
Since this is a poll-type question, please state your main line of work, be it developing web applications or desktop applications, systems maintenance, systems administration, etc.
To make maintenance easier you want to keep the number of different programing languages to a minimum.
For me the answer is that I use 2-3 in an average project.
Currently I use three languages at work:
1. C++ for needed low level programing.
2. C# for application level programing.
3. VB.NET for some VB related functionality and code examples shipped with the application.
I've used C# and C++ in many projects and found that it covers most of the project's needs.
I am a web application developer, in the last week I've done the following:
Created Stored Procedures using T-SQL for SQL Server
Debugged Perl Script that created databases
Written C# Web-service code
Written JavaScript (Both with and without JQuery)
Debugged CSS and HTML issues in IE6 and IE7
On my personal time, I've also used the ASP.NET MVC platform and C# to write a customized Content Management System.
Our shop focuses almost exclusively on VB.NET, but you could also say that I have to work with VB and JavaScript since I do a lot of ASP.NET development.
SQL if you want to count that as a programming language as well.
For web development:
PHP-JS-SQL-{HTML}-{CSS}
Lets count this as... 3.5 languages?
Neverminding the other languages I deal with, the first number I thought of was 5, with the list having only one entry: "Javascript"... damn browsers. :)
I suppose "optimal" is measured by the fewest which allow you to create a solution which is reasonably maintainable down the line.
Probably 1/2 a day mainly switching between Ruby / plpgsql (if that counts?) and BASH.
Though sometimes I may have to debug some JavaScript.
It really depends what you are doing.
For a web developer, it would be very common to work with a client-side and a server-side language every day, such as javascript and Java.
Edit: you would use HTML and possibly XML, but these are markup languages. I'm honestly not sure what CSS would be considered, but yes, you use that also.
The fewer programming languages I'm dealing with at any given moment in time, the fewer times I find myself making really dumb syntax mistakes.
On a given day I try to limit it to 2 or 3, but in a given week it may be 5 or 6.
On a good day, one. On a bad day it's 6-7. I find myself looking up simple syntax a lot more when I'm using many at one time.
I work as a web developer so on any given day I will be writing/debugging HTML, CSS, Javascript and .Net apps. In my free time I enjoy c++ and c#. I have also been contracted to port a vb app to c# so its going to get interesting...
If I were learning a new language, I would definitely recommend C++ and C#, interesting, powerful and if you are good in c++ you can probably work in anything...
I work for a creative studio and do some freelance work. I am often switching between the following:
Actionscript 2 (mainly on old legacy projects)
Actionscript 3 (most of my day job projects)
javascript (personal projects/user scripts)
C# (getting a few projects now for WPF)
Processing (quick sketches of ideas/personal projects)
Also some markup and other "languages":
HTML/CSS
XAML
XML (didn't want to put this, but I use it a lot)
regex (does this count?)
Mostly C#, followed by XSLT/XPath, T-SQL, Javascript, VB.NET when it's forced on me, Power Shell, VBA, and HTML and CSS if you're counting those. So that's about 6-9.
I use 3 languages every days and 6 or so every weeks.
BUT I really know only 2, maybe 3 of them. When I code using the others, I'm googling every 5 minutes !
(Hey, but it works ! :)
Every day or so : VB.NET, C#, SQL/T-SQL.
Every week : HTML, XML, C,
JavaScript.
Every other weeks : Make files, batch
files.
Really known languages : C, C#,
VB.NET.
Cool question ^^
VB.NET and Javascript at work, with a healthy dose of CSS.
VB.NET, VB6, C++, Javascript, PHP, C#, 65816 ASM, and a bunch of smaller languages at home, for whatever little project I'm working on at the time.
I've been fortunate to be working with just one language for the past year: C++/CLI. And each day I'm surprised by how little of it I actually know.

Resources