Mä olen ihan tyhmä C-kielen kanssa enkä oikein osaa ottaa tolkkua tästä koodista, tän koodin pitäisi "putsata" Salora-digiboksin tallentamia (hieman sotkettuja) tallenteita normaaleiksi mpeg-ts tiedostoiksi, invertoimalla(?) jotain, en tiedä mitä enkä tiedä miten se sen tekee, siksi pyydänkin että jos joku c-kieltä hallitseva vois auttaa ja kertoa vaihe vaiheelta mitä tuossa koodissa tehdään, tuon ihan alun, eli include-lausekkeen toki tiedän, sillä kutsutaan stdio.h kirjastoa, ja int main-lauseella alustetaan muuttujat, mutta mitään muuta en sitten tuosta ymmärräkään.
Mun olisi tarkoitus tehdä tuosta ohjelmasta nimittäin basic-versio ja siksi haluaisin tietää mitä kukin koodi tekee, basicia siis osaan, c-tä en oikeastaan yhtään. :(
----
#include
int main( int argc, char *argv[] )
{
FILE *fin;
FILE *fout;
char buffer[188];
int len;
int i;
fin = fopen( argv[1], "rb" );
fout = fopen( argv[2], "wb" );
while ( 1 )
{
len = fread( buffer, 1, 188, fin );
if ( len != 188 ) break;
for ( i = 0; i
Mun olisi tarkoitus tehdä tuosta ohjelmasta nimittäin basic-versio ja siksi haluaisin tietää mitä kukin koodi tekee, basicia siis osaan, c-tä en oikeastaan yhtään. :(
----
#include
int main( int argc, char *argv[] )
{
FILE *fin;
FILE *fout;
char buffer[188];
int len;
int i;
fin = fopen( argv[1], "rb" );
fout = fopen( argv[2], "wb" );
while ( 1 )
{
len = fread( buffer, 1, 188, fin );
if ( len != 188 ) break;
for ( i = 0; i
Vastaukset 2
Vanhimmat
Invertoi tavut 0-3, 47-50, 94-97, ja 141-144 käyttäen poissulkeva TAI (xor) bittioperaattioria. Tavussahan oli 8 bittiä joten jos me halutaan kääntää kaikki tavun biti niin täytyy tehtä tavu xor 255. Joka on kätevästi heksana 0xFF tai binäärinä 1111 1111.
Imports System.IO
Namespace ConsoleApplication2
Class Program
Private Shared Sub Main(args As String())
Dim fin As New FileStream(args(1), FileMode.Open, FileAccess.Read)
Dim fout As New FileStream(args(2), FileMode.Create, FileAccess.Write)
Dim buffer As Byte() = New Byte(179) {}
While True
Dim len As Integer = fin.Read(buffer, 0, 188)
If len 188 Then
Exit While
End If
For i As Integer = 0 To 187 Step 47
buffer(i 0) = buffer(i 0) Xor &Hff
buffer(i 1) = buffer(i 1) Xor &Hff
buffer(i 2) = buffer(i 2) Xor &Hff
buffer(i 3) = buffer(i 3) Xor &Hff
Next
fout.Write(buffer, 0, 188)
End While
fin.Close()
fout.Close()
End Sub
End Class
End Namespace
TItsellänikin tallettava Salora digiboxi. Talletettaessa ohjelmaa kääntää se joitakin bittejä ohjelman alussa. Xor. Tämä on alkeellinen kopiosuojaus. Pienen kielialueen, fi, ei riitä kiinnostusta purkaa kopiosuojausta vähäisen kysynnän johdosta. Fout on tiedosto josta kopiosuoja poistettu. Voit tehdä ohjelman joka poistaa koko hakemiston tiedowtoista suojauksen, sen jälkeen kun ole ne kopioinut USB-johdolla ne pchen. Afterdawnissa oli keskustelu Saloran suojauksesta.