|
Not sure if this goes here but I didnt want to post it in the lounge either.
So here is the question.
If I take a file and start reading through it as I look at each bit could I flip that bit?
So if it is a 0 make it 1 ... ect?
Here is what I want to do.
Pass 1) Read through a file and reverse all the bits in the file
Pass 2) Take the file and turn all bits off
Pass 3) turn all bits on
Pass 4) Delete the file
Do you think this could allow me to securly delete a file from my system making it unrecoverable?
Thanks
Will
|
|
|
|
|
Not if someone is willing to dismantle the drive and use lab equipment to read residuals directely off the platter. The writehead only erases ~95% of the bit and it's movement over the platter afffects which part is missed so N passes won't erase 100*(1-.05^N) percent of the data. I've got a tool called BCWipe that uses a 35 pass algo designed by someone with initmate knowledge of how the HD writehead works that should render it unrecoverable. If you want to write your own program the used bit patterns are user view/editable. It also has an older 7pass DoD routine.
|
|
|
|
|
OMalleyW wrote:
Do you think this could allow me to securly delete a file from my system making it unrecoverable?
Definately not! After having visited the inside a computer forensics lab, I was surprised astonished at what you have to go through to stop these guys from getting at that data. What're suggesting on doing, really, is very weak.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
thanks for the reply's
even if they could get to the file, the data is not recoverable...
i guess that is really what I care about is the ability to get rid of data i dont really care if they can recover the file as long as the data is gone...
any thoughts?
will
|
|
|
|
|
You need to use a cryptographic wipe to do that. the program I mentioned in my previous post BCwipe will do one, and exposes the bit patterns used to do so. IT also names the used algo if you want to read up on how it works.
|
|
|
|
|
OMalleyW wrote:
even if they could get to the file, the data is not recoverable...
First, there is no difference between the two. file=data
You said you wanted a SECURE way to get rid of the data. Well, the way you suggested overwriting the data, it IS still recoverable. Not by your program or the file system, but by some hardcore tools and a little overtime in a lab...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thank you again for the quick replies...
Dan,
I will look into BCWipe I read a little and it sounds very interesting.
Currently I use SDelete from Sysinternals that is a cool program also.
From what I understand (now) what I would like to write is no trivial task
and will require me to do far more research.
Dave,
You mentoined that you were astonished at the tools the forensics lab
had to get data. I guess I should also become more familar with the
technologies that are used to recover data also.
Thank you again for all your help.
Will
|
|
|
|
|
OMalleyW wrote:
I will look into BCWipe I read a little and it sounds very interesting.
Currently I use SDelete from Sysinternals that is a cool program also.
From what I understand (now) what I would like to write is no trivial task
and will require me to do far more research.
If you want to actually design your own algorythm (bad idea!) you will, but to just implement it yourself is trivial. All you'd need to do is copy the bit patterns used and sequentially write each to the entire file. What would be nice would be a program that would also wipe 'underneath' existing files. It shouldn't be that hard to do either.
|
|
|
|
|
Hi Every body
I have a usercontrol (Named DatePicker) with a property called 'Date'.This is the syntax of this property :
<code>
[Category("Date Info"),Bindable(true)]
public string Date
{
get
{return this.dateString;}
set
{this.dateString = value;}
}
</code>
This control also have some string properties (Day,Year and month)without 'Bindable(true)'Attribute.I use this user control and bind the 'Date' property of this control to a string column of a DataView in my form :
<code>
this.datePicker1.DataBindings.Ad("Date",this.dvDataSource,"Birthday");</code>
When I delete all rows of dataview whith this code :
<code>
this.BindingContext[this.dvDataSource].RemoveAt(this.BindingContext[this.dvDataSource].Position);
</code>
and then try to add a new row using the following code,
<code>this.BindingContext[this.dvDataSource].AddNew();</code>
I receive the following Exception :
"DataBinding could not find a row in the list that is suitable for all bindings"
Note :
When I comment the line of code that contains instruction for Binding this property,everything works ok.I bound some other controls (Like DataGrid and TextBox) to the other columns of DataView.They haven't any problem !!
Please help me if anyone knows the answer.
Best Regards.
[ _ Always there is another way _ ]
|
|
|
|
|
I need to include a .dll and an .ocx in my application.
How can I do that;
Thanks.
Osvaldo Rosario
Email: orosario@multisysid.com
-- modified at 10:44 Thursday 1st September, 2005
|
|
|
|
|
If you mean that you need to use unmanaged dll and ocx in your application
For Dll you can use P/Invoke to use function from unmanaged dll in your application
look at this article Calling Win32 DLLs in C# with P/Invoke[^]
For OCX
write click in toolbox select
Add remove items ...
then select com tab ---> select ocx you want it will be display in toolbox
MCAD
|
|
|
|
|
I want to write a program in C#. I have met a problem which i want to control the scanner and get the image.How to do it?Thanks~~
|
|
|
|
|
Hi All,
Is there any better and reliable method to watch for directories then filesystemwatcher.I am watching all files and folders on fixed drives.The behaviour of filesystemwatcher is different for different files for example for a .txt file if something is changed it fires the change event two times.for .xls file change event will fire even if it had been just opened also sometimes it shows it as deleted and then renamed when there is nothing being changed in the file.for .mdb file the creation and change both event fires just on creation.Is there any other reliable method.Thanks in advance.
|
|
|
|
|
This is not because the FileSystem watch treats different file types differently. You're actually getting some insights as to how those applications really behave! No matter what you use to monitor the file system, you'll see the same behaviors.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
hi dave,
thanks for that information.Actually I want to know when a particular file is being modified.even the File.GetLastWriteTime does not help as in the case of .xls file it gives me the last access time.and there are other files type also.is there any way by which i can find whenever any file is being modified.thanks in advance.
|
|
|
|
|
"Being modified" can't be tracked. In the case of Notepad, it opens the file, reads it, then closes it. When the file is saved, the filename is opened, written, then closed. That's it.
Excel/Word is almost the same way, but they involve saving to temp files, deleting the originals, and renaming the temps file to the old filenames.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Internet explorer's back and forward button can forbidden? How do it?
|
|
|
|
|
I doubt it. If it can be done, it would only be with the use of Browser Helper Objects, look it up on MSDN.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Cops & Robbers
Judah Himango
|
|
|
|
|
Maybe this is a dumb question. If I have MS SQL Server Desktop Edition, can I access the database from a seperate computer? Or do I need SQL Server for that? 'Cause I sure can't afford to get SQL Server, and my database application is only going to be deployed on 3-5 computers.
Thanks for the help.
The ends can never justify the means. It is the means that determine the ends.
|
|
|
|
|
theStorminMormon wrote:
Maybe this is a dumb question. If I have MS SQL Server Desktop Edition, can I access the database from a seperate computer? Or do I need SQL Server for that? 'Cause I sure can't afford to get SQL Server, and my database application is only going to be deployed on 3-5 computers.
You can use MSDE 2000 from other computers on the network. I do this all the time.
Providing the correct permissions are set then you should have no problems.
Michael
CP Blog [^] Development Blog [^]
|
|
|
|
|
OK - so just to be absolutely clear, if I run MSDE 2000 on a "server" (it's actually just my desktop running win xp pro) and I deploy an application to my client (my laptop) that accesses a database on my server via MSDE 2000 - that should work? Right now my application runs fine on the server, but it can't find the database from the client. This is connection string:
private string strConn = @"Integrated Security=SSPI; Packet Size=4096 ;Data Source=""EC-BJACOBS""; Initial Catalog=BenefitSelectDBSQL; Provider=""SQLOLEDB""; Workstation ID=""EC-BJACOBS""; Use Encryption for Data=False";
Next question - how do I set the correct permissions?
The ends can never justify the means. It is the means that determine the ends.
|
|
|
|
|
theStorminMormon wrote:
private string strConn = @"Integrated Security=SSPI; Packet Size=4096 ;Data Source=""EC-BJACOBS""; Initial Catalog=BenefitSelectDBSQL; Provider=""SQLOLEDB""; Workstation ID=""EC-BJACOBS""; Use Encryption for Data=False";
Next question - how do I set the correct permissions?
You are currently using Windows Authentication? Do you have a domain controller that manages your user security? If so, just add the domain users as users in your database and give them the required permissions.
If you don't have a domain controller, then it becomes a bit of a pain to use Windows Authentication. It is easier to create SQL users and change the connection string to use SQL authentication.
Michael
CP Blog [^] Development Blog [^]
|
|
|
|
|
When I originally installed and set up MSDE 2000 and my database, I had no clue what I was doing. The directions were unclear (to me) and I considered myself extraordinarily lucky when my program actually connected to the database at all (I still don't understand the connection between the database that I designed in Access, MSDE 2000, the SQL Server, and my C# application). What I'm trying to convey with all of this is that it's purely accidental that I ended up using Windows Authentication, and I would prefer to create SQL users and change the connection string to use SQL authentication if only I knew how.
Can you give some pointers on how to do this? The only access I have to MSDE 2000 on my own machine is too click on the little icon in the system tray - which brings up the SQL Service Manager (which doesn't let me do anything useful).
I just downloaded DbaMgr2k to try and get better access to the server (to add users, change authentication type) but I'm not sure how this works.
Any help you could offer would be great. I have books on C#, ADO.NET, and MS Access, but running MSDE 2000 seems to fall between the cracks and each book only offers tidbits on how to use it.
Thanks.
The ends can never justify the means. It is the means that determine the ends.
|
|
|
|
|
Hehe, that's about the way I felt when installing MSDE for the first time.
Having access to the EnterpriseManager of a "full" SQLServer helps alot, though.
MSDE basically is a full SQLServer with only performance-related restrictions, so you can use all the built-in stored procedures, for example, to manage database access, users and so on.
Try opening a command shell and type "osql -E" to open up an SQL-"shell" you can use to query your databases.
Some time ago I found the online documentation for SQLServer2000 on microsoft.com. Pretty complete, helped me a lot. For example, it lists the stored procedures available and how to execute them.
You can download it here[^]
Regards,
mav
|
|
|
|
|
Thanks, I'm downloading it now. Hopefully it will help.
The ends can never justify the means. It is the means that determine the ends.
|
|
|
|