Is there a way to edit ISO file without changing serial number - edit

I try to build an ISO file and add a software I am making to it. I want to be able to add some files later but not to change the serial number of CD. I tried burning the ISO and I get same serial number 2 times in a row, but the moment I change or add files to that ISO serial number changes.
So my question actually is: is there some method to keep the serial number same but add data to ISO file?
I am using MagicISO to build my ISO file, but I am willing to try everything.

enter image description here
So I found that actually in MagicISO there is a function to keep the serial number, that for some reason I haven't seen till now.
It is so simple when you look at it. So you just click File -> Properties (on the iso image you are using) and in the ISO tab you can choose to keep the serial number or add a new one

Related

expire application after 1 year span from client PC, No internet is available on client PC

I have one vb.net windows application and I want to deliver it to my client with 1 year validity.
After one year this software will automatically stop working or ask for renewal.
The client PC doesn't have internet access.
Please tell me the secure way for this.
When the program is installed, have it set a registry value with the current date. Then, on every subsequent program start, have it check that registry value against the current time. If more than a year has passed, do whatever you plan on doing to lock up your application.
This post has some excellent info on the specifics of adding, modifying, and accessing registry values in vb.net.
Check the date.
If dateToday > dateProgramSold.AddYears(1) Then
'open form that cant be close saying program is expired
End If
When the program is installed, it should ask for an registration key (they could get it by email, print it off and type it). The key should contain the last day of validity (encrypted). Store the key in the registry (or somewhere else). When the program starts, you check the date inside the key.
If they re-install the end date will stay the same.
When they want to update, just send a new key by email or mail.
The amount of security you put into just could depend on how much you trust the company. Because they could always decompile and crack your software.
I needed to do this for a program I wrote. My final solution included the resolution that you can't be 100% foolproof, so I considered my users and did the best I could with what I had.
Without access to the internet, how does the computer know what date it is? It has to rely on user input for it. So if a user can input it, then a user can change it. There is no foolproof way to get an accurate date from the PC without the the user having access to it. Whether from the OS, the BIOS, etc.
So what I ended up doing was putting an obfuscated key into the registry in an obscure place. HKCU >> Software. I made the key just some letters and numbers {L12A3C0DFF} then I named the key Z0B0 and made the value the obfuscated date. I took the year month and day and ran each one through a different calculation. I ended up with something that looked like DDE011468932.
Each time the program ran it decoded this registry setting to see if a year had passed based on the time in the BIOS. If the date in the BIOS was earlier then this date then they changed it and I would not not allow my program to run.
Also each time the program ran, I checked the date in the BIOS and stored this in the registry in the same way. So I would check to see if they changed the date in the BIOS to an earlier date.
So in order for them to abuse the date restriction of one year, they literally had to change the date in the BIOS every day which I figured was not worth it to them to do, besides, they would have had to figure out where I was getting the date from to begin with, which would take decompiling (and I wasn't selling it to a bunch of programmers). Simply changing the date in the OS wouldn't fool it.

Store All Input Data Acrobat Form

I have an Acrobat form for work that our salesmen use to create proposals for jobs and their corresponding estimates.
The problem I am facing is that the form only stores data for one customer at a time. I am trying to get it to where they can type in a customers name (or job number, etc.) and it pull up all the form data used for that customer when that exact estimate was done (no matter how long ago it was).
How can I get my PDF form to do this (save current and all previous inputs) and not just save the current data in each editable field at a time?
I currently use Omniform and it does all of this; however, we are trying to switch over to Adobe and I am not too familiar with the software and how I can accomplish this!
Thank you in advance!
If you want to do all the processing local (without server roundtrip) you would have to embed all data in the PDF itself. There are several ways to do this but I would recommend using JavaScript. You would declare this at the document level. You would handle the blur event of the customer name (or other key field), find a match among the multiple customers and populate the secondary fields.
Assuming the data sits somewhere in a database, you would have to generate such a PDF or manipulate an existing template programmatically using a library. Not sure if you are looking to a programming solution or a tool.
Here is more info on JavaScript for Acrobat:
http://www.adobe.com/devnet/acrobat/javascript.html

date stamp pdf on download

I have a PDF which users can download. However, I need to have the date it was downloaded in the text on the PDF.
Is there a way to insert a "date now" stamp on a PDF so it is dynamically added on opening?
Perhaps you can add javascript to a PDF?
You can sign and timestamp the PDF on the server before giving it to the user. Signing can be performed once a day (unless you need finer granularity if timestamp time). This is the only reliable way to put a timestamp to the PDF. Also, the signature can be removed, and if you want to add a watermark which can't be easily removed, this is a different story.
JS sounds like the way to go... mostly.
You could add an empty text field where you want the date to appear. When someone opens the PDF for the first time, you could then set the field's value.
ISSUES:
Reader cannot save changed PDFs unless they have been Reader Enabled via Acrobat.
The script will run when the PDF is opened not when it is downloaded.
If you really want to mark their download time, you need to do it on the server. Fields again, only this time with some byte offset monkeying.
Set the keywords (or author, whatever... one of the Doc Info fields you're not using) to a bunch of empty spaces... enough to accommodate your largest timestamp. In script, when the form is opened, you ALWAYS write that info field to your timestamp field. No worries about reader enabling.
Now, to actually write the timestamp, you need to know the exact byte offset of that info field in your PDF, and you need to know how much empty space you have to work with so you don't accidentally overflow (that would be Very Bad). When the time comes to serve up your PDF, you suck up the bytes, change the ones for your time stamp, and server those modified bytes.
That's the most efficient (and brittle) way to do it.
If you'd rather do things The Right Way, use your favorite PDF library to change the form value and serve up the resulting PDF. No script required, but significantly more work for your server.
Note: Multiple fields can share the same name. They automagically share the same value as well. So if you want the time stamp to show up on every page, you don't need "timestamp1", "timestamp2", and so on. You can give all the fields the same name, then set the value once. "Your favorite PDF library" might not handle this terribly well. iText does, I'm sure others do also.

Changing hash of a files

I have a folder full of binary files and I want to make a change to these files so that the hash of these files will change. I want to do this is a fashion that doesn't pertinently corrupt the files. Meaning that the change should still allow the file to operate normally or that I should be able to undo the change at any point in time.
Does anyone know of a script that I could use to do this or many a program that will automate this?
Cheers
UPDATE
Its a edge case that I am trying to deal with. I have a system that only allows me to store a file with a given hash once. Hence I am wanting to change the content hash of the file to allow the file to be stored. Note the system in question is not one I control or can change.
Couldn't I just add a random 1 to the end of the file and then remove it afterward without breaking anything? I'm just not sure how to script this - as in how to modify the binary data in this way. Note I'm in a windows environment.
Without knowing the format of the files, we can't tell. It may in fact be impossible - for instance if these binary files are self-signed with some private key. Changing any single bit within the file is likely to render it invalid.
Is your hash calculated purely from the contents, and not any other metadata that you can change (such as filename or modified date)? If so, you're probably out of luck. If the hash is meant to detect when the content changes, but you're trying to change the hash without actually changing the content, you've clearly got a problem...
What is the hash used for? Why do you want to change it? There may be an alternative solution if you could give us more information about the bigger picture.
EDIT: One alternative is to effectively create your own container format - so while a file is stored in your container format, it's not usable in its original form, but it can be extracted easily. Your container could be as simple as "add four bytes at the end as a seed to disturb the hash" - "extracting" the file would just involve copying it and removing the last four bytes. But the important point is that what you end up with isn't an MP3 file or whatever you started with - it's your custom format, simple as it is. You need to package/extract the file any time you interact with the store.

How to check if PDF was modified

I have a PDF generated by 3rd party system. Using PDF editor or els software I have modified it.
Is it possible to detect if PDF file was modified, without original file?
I will add some more details.
There is no encryption and no signature features.
Document is created by IT system. User receives document and modifies it.
Is it possible to track that change somehow?
I thought that all these applications leaves some data in PDF header or somewhere encoded inside file and it is possible to check it. However properties showed by windows explorer shows nothing... so I was interested if there is something smarter than viewing properties/header in explorer.
The problem with this is that just opening the PDF on a Mac in Preview and hitting Command-S to save the file will replace both the Creation and Modification date to match the current date/time. So even the creation date will be wrong. Even novice users can unknowingly do this, so if you're trying to track someone who may be purposefully modifying the document, it may lead to a false positive.
What you're asking is just too easy to spoof and fool unfortunately.
You could always check the md5sum of the pdf file. I'm not sure what environment you are using but that should help get you started.
It's going to be rough without the original file unless there were security features like encryption or digital signatures applied to it, which it doesn't sound like there was. Do you have access to any information at all about the original file? A file size, creation date, any of the metadata, etc.?
If the tool used to modify the PDF is working according to the PDF spec then in the Info dictionary it should update ModDate but leave CreationDate alone. You may also see some non-zero generation numbers on the objects although it is just as possible that all the objects have been regenerated and will therefore be generation 0. The trial version of CosEdit will allow you to look at these 2 items.
If however the tool has been used to intentionally modify the PDF without leaving a trace then they would be spoofing those bits of data so they won't help you.
Are the users modifying the PDF using Acrobat? If so then what Danio mentioned above should work. Strictly speaking, modifying the PDF should change its ModDate or xmp:ModifyDate without changing its CreationDate. However not all tools adhere to this; quite a few simply leave all metadata untouched, so this method of checking isn't 100% reliable unless you know what PDF editor your users employ.
If the editor your users use does change ModDate or xmp:ModifyDate, then you should be able to see it in two places. One is when you open the document in Acrobat and hit Ctrl-D to view Document Properties. The Creation field and Modified field should have different timestamps. There may also be APIs that can be used to programmatically retrieve this metadata. The other way you can visualize it is to simply open the PDF in Notepad and search for the properties. Most of the document won't be human readable but these timestamps should be. If they do get changed appropriately, you can always parse for them in your application. Good luck!
If you're using Ubuntu linux 18.04 and using Document Viewer then, you can
click on File options (3 vertical line ellipsis)
click on Properties...
look for Created / Modified fields in the Properties pop up
Beware: A sufficiently knowledgeable user can manipulate the PDF contents without changing the Created and Modified time stamps in the PDF metadata and the file system.
You can use some tools to get the pdf file property.
I use pdfinfo, you can get many property of the file, and check it.
pdfinfo 58dcc41d01293.pdf
Author: worker
Creator: Microsoft® Word 2016
Producer: Microsoft® Word 2016
CreationDate: Sat Aug 24 16:02:29 2019
ModDate: Sat Aug 24 16:02:29 2019
Tagged: yes
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 55
Encrypted: no
Page size: 841.92 x 595.32 pts (A4)
Page rot: 0
File size: 3346838 bytes
Optimized: no
PDF version: 1.7