Programming Languag...
 
Notifications
Clear all

Programming Language(s)

13 Posts
12 Users
0 Reactions
2,650 Views
cgpa1
(@cgpa1)
Active Member
Joined: 20 years ago
Posts: 17
Topic starter  

Generally speaking is there a programming language as an investigator you should know and use above all? As a forensic investigator do you need to know how to programme? If you had to learn or chose to learn a programming language what would it be, C++, Java, C#, Perl, Python or something else?

Thanks,


   
Quote
(@sgware)
Eminent Member
Joined: 13 years ago
Posts: 42
 

My 2 cents. Perl and python is what I suggest for non-programers. If you want to write your own scripts, or, modify open source code. For the record, you don't need to be a programer, but, it helps to know how to follow code so that you can validate the function of open source tools, reverse engineer malware, etc.

Scott


   
ReplyQuote
Passmark
(@passmark)
Reputable Member
Joined: 14 years ago
Posts: 376
 

If you don't have a solid programming background then doing any reverse engineering of malware is extremely optimistic. Assembly level tracing of obfuscated encrypted code is as task that is beyond 95% of full time programmers.

Even the full time reverse engineering professionals find it tough work,
http//www.securelist.com/en/blog/208193781/The_Mystery_of_the_Encrypted_Gauss_Payload

I do however agree that learning a scripting language is the way to go for a first language & that Perl and python are both good choices.


   
ReplyQuote
(@twjolson)
Honorable Member
Joined: 17 years ago
Posts: 417
 

Depending on what type of work you do, knowing HTML, CSS, and Javascript are good ideas as well. This comes in handy when you are doing internet history investigations, or malware infections.


   
ReplyQuote
minime2k9
(@minime2k9)
Honorable Member
Joined: 14 years ago
Posts: 481
 

To be honest, I think it would depend on what you want to do or learn.
If you want to program with a view to understanding Malware better or how programs work then a proper language such as C/C++ would be your best bet.

If its just to run the occasional small program then a script language such as Python, basically anything where speed and memory efficiency won't be a problem.

Although I was a programmer before a forensic investigator so I might be slightly biased!


   
ReplyQuote
(@mscotgrove)
Prominent Member
Joined: 17 years ago
Posts: 940
 

I love C/C++ because it has very few restrictions on data manipulation.

It can be a bit like a chain saw with no guard so you need a good operator.

Many 'younger' programmers seem to like C# but I have spent too long with C/C++ and pointers, new, delete [] etc to change.

As a C/C++ programmer my very brief attempt at a short PHP program was very frustrating.

As an investigator it is worth understanding raw data structures and being able to create tools to manipulate, or extract data. My personal advice is also to always think in Hex. 95% of the time you should ignore decimal numbers.


   
ReplyQuote
minime2k9
(@minime2k9)
Honorable Member
Joined: 14 years ago
Posts: 481
 

Many 'younger' programmers seem to like C# but I have spent too long with C/C++ and pointers, new, delete [] etc to change.

How dare you…. I'm a young programmer and keep away from that abomination of a language! lol

Still much better that python/perl though.


   
ReplyQuote
(@angrybadger)
Estimable Member
Joined: 18 years ago
Posts: 164
 

Many 'younger' programmers seem to like C# but I have spent too long with C/C++ and pointers, new, delete [] etc to change.

How dare you…. I'm a young programmer and keep away from that abomination of a language! lol

Still much better that python/perl though.

Python's not that bad.
Its powerful, quick to develop for and readable.

It's best feature is that it is not Perl.


   
ReplyQuote
(@alastairfay)
Eminent Member
Joined: 14 years ago
Posts: 36
 

Learning to program in a language is relatively easy - just follow a book.

Learning how to think logically like a programmer, and apply that knowledge to a problem is the hard part - by a long way!!!

The latter takes *years* to develop.


   
ReplyQuote
(@alexc)
Reputable Member
Joined: 16 years ago
Posts: 301
 

Many 'younger' programmers seem to like C# but I have spent too long with C/C++ and pointers, new, delete [] etc to change.

How dare you…. I'm a young programmer and keep away from that abomination of a language! lol

Still much better that python/perl though.

I code in both Python and C# day-to-day, they are obviously higher-level languages, abstracted from a lot of the low-level memory management etc. which removes some of that power and (potentially) speed, but also saves on many headaches. It's rare that I read C++ code and think that the code itself is elegant (the implementation or a particular algorithm sure, but, goddamn, C++ is an ugly looking language) but I routinely see Python code which is just so neat that it makes me smile.

As already mentioned in the thread though, I think that the whole "thinking like a programmer" skill is more important than the choice of language. Understanding how data makes its way through a program makes pretty much any reverse engineering task far easier, and increasingly in a world where FOSS software is found on people's devices, being able to read code can be a real boon.


   
ReplyQuote
Page 1 / 2
Share: