Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any way to determine when a .net program was compiled/built

I need to prove that a VB.NET program that I wrote was written at a particular time.

(the reason is an academic integrity investigation where someone copied my code).

I have all the code on my disk including the debug and release folders, with my username in the build paths.

Are their addition things I could do, such as looking in the binaries?

like image 713
user1452544 Avatar asked Jun 13 '12 00:06

user1452544


3 Answers

If you use IL Disassembler to open the EXE/DLL, then select menu option View>Header, there is a field called "Time-date stamp" in the COFF/PE header. It's in binary format, and according to MSDN it is:

The low 32 bits of the time stamp of the image. This represents the date and time the image was created by the linker. The value is represented in the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Universal Coordinated Time, according to the system clock.

like image 141
SSS Avatar answered Nov 08 '22 12:11

SSS


First thing you should do it copy all of the data as it stands to another device - making sure you preserve all date times. Do not open or edit any of the files.

Each file will have three timestamps, when it was created, when it was last modified etc. These can be found using DIR /T

  /T          Controls which time field displayed or used for sorting
  timefield   C  Creation
              A  Last Access
              W  Last Written

Get a listing of the directory like this:

DIR myrootdir /s /ah /as /tc > fileslist.txt

This will dump out all the files with creation times to a file called fileslist.txt

Also as @EricJ says : offer your disk as evidence - but like I said make a copy first. It would be best to make an image copy (windows backup) to an another drive first.

like image 44
Preet Sangha Avatar answered Nov 08 '22 11:11

Preet Sangha


The investigators are going about this all the wrong way.

Any timestamp data can be faked, so the best way would be for them to sit down and ask detailed questions about how the code works, to both parties seperately. Or to ask both parties to complete a small test project, again seperately - under exam conditions.

The one that copied the work wont understand what they copied most likely, and wont be able to reproduce something based on similar concepts.

The one who did write it - well unless they cheated to, they will understand it all in depth.

like image 1
user1453137 Avatar answered Nov 08 '22 11:11

user1453137