Ajuda se puder em c#

onsitbin

Membro
Olá boa tarde estou a tentar desenvolver um tool em C# e vinha aqui colocar três Dúvidas se não for muito inoportuno, com a descrição (dúvidas) de Dois pontos

Ponto 1:
Estou aqui com a abertura em um Textbox e openFileDialog, e fazer uma chamada por um *.bin File, essa chamada está a ser feita por um determinado Offset abaixo descriminado. (reader.BaseStream.Position = 0x0001fc06;). Neste caso começava byte (46) Hex

Exemplo code Open file

C#:
private void button_Click(object sender, EventArgs e)
        {
                openFileDialog1.Filter = "BIN Files|*.bin|All Files|*.*";
                openFileDialog1.FilterIndex = 1;
                openFileDialog1.Title = ("Abra Seu_bin file");
                openFileDialog1.FileName = ("Abra Seu_bin");
                openFileDialog1.RestoreDirectory = true;
                if(openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                try
                {
                BinaryReader reader = new BinaryReader(new FileStream(openFileDialog1.FileName, FileMode.Open));
                //Set the position of the reader
                 reader.BaseStream.Position = 0x0001fc06;
                //Read the offset
                  abrbloco00016c.Text = BitConverter.ToString(reader.ReadBytes(512)).Replace("-", null); //reader.ReadBytes(512)
                // read the offset in string (assuming you want that)
                }
                catch
                {
Seria possível algum amigo, dar-me uma dica e fazer a chamada por header string exemplo (, em vez de Offset,
Exemplo
Inicio em Hex
(46 64 42) + Seis (6) Bytes (9D E1 BF 3A 1D D2) ou seja começar em (0A)

Início string Binário em header

(FdB) + Seis (6) Bytes (...:..)

Começar em header string (.) e gravar no mesmo formato ou seja .*bin file (bloco 512 ou mais)

.O.Q%.f.....iV....[.(.-..k.$D._.+s....8L..xf..st=[.P..EHr....{`c...DQuQ...$.e$; .[.?..7...SF0._t)....P.k,...g.Xy..9....K0.r.r-..):....{?..z6..3...&N.Txk..~.......e...P.x...."O`..%..U.K&5x\...uv......[..~..d...B,.q~......].l..O.j.v.j...d(.$..._...<..<`[email protected]..,..<nr...&...y;.D..a.v...-!....p..S.:...T."i.]8.V.]...)%...h.d...lz..z...6X.5..{..yu...#B.Z.Em......[m.p./..@ ..&........"..%*.KR+...P...~.*......i...F...../dsI[..;....


Hex string
OFFSET 0 1 2 3 4 5 6 7 8 9 A B D C E F
0001fc00 FF E8 B9 DE AB 12 (46) 64 42 9D E1 BF 3A 1D D2 F3 ......FdB...:...
0001fc10 0A 4F 01 51 25 DE 66 1E 1B 81 9B A7 69 56 F4 AF .O.Q%.f.....iV..

Ponto 2: Fazer um xor tenho três Textbox1, Textbox2, Resultado, onde uma fás a chamada do bloco acima exemplo 512 bytes tamanho do bloco, mas pode ser maior

A situação é que me faz bem o xor só que não me sai bit a bit, mas sim byte a byte no resultado, seria possível converter de byte para bite e no fim gravar o bloco como *.bin como acima citado binário String.

Tenho este source de gravar mas grava-me em hex e não em binário string, e não me remove os espaços dos bytes

Exemplo code Salvar

C#:
SaveFileDialog saveFileDialog1 = new SaveFileDialog();    
         saveFileDialog1.Title = "Salvar o Bloco";
         saveFileDialog1.FileName = "Bloc.bin";
         saveFileDialog1.CheckPathExists = true;
         saveFileDialog1.DefaultExt = "bin";
         saveFileDialog1.Filter = "Binary File (*.bin)|*.bin";
         saveFileDialog1.FilterIndex = 2;
         saveFileDialog1.RestoreDirectory = true;  

        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            
         {        
           File.WriteAllText(saveFileDialog1.FileName, resultado.Text);
         }

exemplo. xor

Textbox1 ^ Textbox2 = resultado

Textbox1 Hex = em bits

Código:
7C91CFBD0D8F3240FB00762D018B104D87D98DAB7593982E0231B5C9608049586B08C7D6B27606E55504BCCCF43BE45E64FE7BC9CA74294EAA62948C1946D95B56C5E25D8A1F770D5D5D8FB3992CAFF2494AD575B81C9E011D3ED55CEAC61C9619F95A9B3B82A38A89915C49AB44CD955DEAA22B3721B83E2A04868D5E4A7419281357A8F2CD1AEAC01DE91B0A0F51D86FCA5C05A10B069C0419341D1386425A7BAC280DB486166F39834EFFA49920733DB2859390782135B5EA48B3B26EAF307BF0E44339919CD71CEAF004301B966F0543A90AD0DDC66631EB9C8F96F1797E52D8A8952E5ACB928E513DA179719987F9B3F0875F5B95E22C1678BEAF1DE95B4D933091F6CD961F970D2E38D7A44622B7A9CCDBD4FFBD5DC8E9F169AB928C7978E5EE8751A5C56E0279029499480E4C2561D0B59F55F06D66A025B9651D4525DCBCE0FDBD1AC3721A98A80C6D2A224E22289FF364C925E2A99FEDE909E0E2D2898A75A55C0A6E2DEF7A795324260B543E28A71C283A661B561714A45DFBFCCC8289596C2BBC396EDA9ACCF3DCE5A926FE2CFB2D4EE6A82E38D0C2E4C0883AC1D3885655AE8937CD850EBCCCFE73D2DBAB1333D10B6D78D787D5D41E61F26534D46ACF273EA4590B2C06E81ED4B5941842A19D6F8E831EEA749B9DC60FDE182DBD92A928000038BD2A8D4000000048349D8D38677C8D040000000034921400F8

Xor TextBox2 Hex= em bits

Código:
E8DFB165331C4138C8E805630E1096FF58C99EA8B8D15FABFF55DCFCE64E08C241505FF27142C36D25685DCD9C63831C9B16C21761666F2AE8FF7533235B0BA85C8AE30CAFC1111346DC1414F07A5B5DBD358E759081B39833554B78AE594390328AC408C5869BC64056242F02E1BEE160B1477B90EFFD765800072DFF31147ADE154BECA3B84B3C2411CD146F2B6AF8FD91C43A05B0311497FF675B23351D2E52262902A6D6AE04154AB875C389780A9556BC79058A307E85303A63C0434F9F52CA60C5F093E7E8FC3B8A32B4EBA59219828F446189BE0DC056E2174213A27C4962CD9984BC9B67F646DEAAB953D6E74F19D58D450E57A90A2300E223E77F2E3B442B5479339D449F0F50AADFC0D59671EBE0CCA581AE5D0E6F5FC2F63BE06CFFAA7EEDB8D34204D5C8FCF0B1FB2AE3D6708F2F68FCCC74B09C45F03759708CBDA1A079FF2DB5F92ACF6C15ADBA2CE78E3BE96273E42052856E3FD56792E54537ACB9AA887355B6ABF0CB32D75099B3BF0586B0C389DA6BBBDA47B4671FEF13D6127B059FE1018D8C6B91285A588003EBA44045DF82B22DA4BCB86D30F22E6D55BE0EFB9B92BDB66771C5B97BC31EF8E9E469484E006D4891C335023A9F60446345D7E97E8446C80AD55CDC415497E95183346AABA9B6A126B04AC9808EBBEB16EC2802A81B8A3BB06929B8B3980EE1608939FF53E977495B02E00F359E1D33

resultado = em Bytes

Código:
AB  12 46 64 42 9D E1 BF 3A 1D D2 F3 0A 4F 01 51 25 DE 66 1E 1B 81 9B A7 69  56 F4 AF F4 7F 5B 00 28 9D 2D 99 2E 6B 9E 24 44 9F 5F 06 2B 73 9E 93 FE  04 38 4C C9 C7 78 66 A9 A5 73 74 3D 5B E5 50 A7 CE 45 48 72 04 81 A0 A1  7B 60 63 F6 06 1C 44 51 75 51 D6 E4 0C 24 0F 65 24 3B 20 92 5B 98 3F A4  BB 37 88 93 E6 53 46 30 B3 5F 74 29 8A 01 0F 12 50 B8 6B 2C C9 F6 8A 67  10 58 79 A8 E4 39 EA 95 F2 11 4B 30 DA 72 D0 72 2D E0 AF 29 3A 84 86 C9  02 7B 3F E0 D1 7A 36 84 F0 33 FD 1C C1 26 4E B1 54 78 6B F1 BD 7E 98 D4  E2 DB 02 1B BA 65 0C AA E6 50 F5 78 17 E3 0B C0 22 4F 60 B6 AA 25 0A 1A  55 C2 4B 26 35 78 5C 8C FA 96 75 76 D7 1B C5 8F FE 0B 5B 08 02 7E 92 08  64 93 B4 C6 42 2C 17 71 7E 13 00 C6 86 AE AB 5D A9 6C 15 87 4F 90 6A E9  76 87 6A D7 B1 FE 64 28 B3 24 AF F3 11 5F 9A F7 A9 3C 19 D6 3C 60 49 52  44 35 A9 61 1D 40 84 42 37 76 8B 30 57 C4 19 C0 90 0E A9 AC 13 76 91 17  2D 05 B0 2C F1 D2 3C 6E 72 07 97 BE 26 CC 0F D4 79 3B 9B 44 8A B2 61 F3  76 92 E7 81 2D 21 AC EB B3 BC 70 ED CD 53 10 3A E4 13 DF 54 9B 22 69 B4  5D 38 E3 56 F1 5D DB 86 BD 29 25 15 88 BB 68 91 64 1A 03 9C 6C 7A 89 F0  7A 14 AC 86 36 58 AE 35 1B 8A 7B E2 7F 79 75 85 B0 CC 23 42 F7 5A 99 45  6D 15 9F 16 16 E1 1C 5B 6D 05 70 B7 2F 18 CE 40 20 1F C3 26 D3 B4 C2 95  E1 03 F1 13 22 A9 05 25 2A A8 4B 52 2B D7 0F 8F 50 A3 C6 AB 7E 81 2A A8  1B B2 86 9A E4 69 B8 B3 98 46 D5 FD 04 01 98 2F 64 73 49 5B 02 E0 3B A7  8A 1D CB

Peço desculpa pelo atrevimento de colocar, logo de inicio uma questão tão prolongada
mas é que ja ando nisto a 3 semanas e não estou a conseguir o que pretendo.
Agradeço desde já uma ajuda
Obrigado
Onsitbin
 
Back
Topo