Ir ao conteúdo
  • Cadastre-se

Pedido de Ajuda em C#


onsitbin

Posts recomendados

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
 

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
 

         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
 

7C91CFBD0D8F3240FB00762D018B104D87D98DAB7593982E0231B5C9608049586B08C7D6B27606E55504BCCCF43BE45E64FE7BC9CA74294EAA62948C1946D95B56C5E25D8A1F770D5D5D8FB3992CAFF2494AD575B81C9E011D3ED55CEAC61C9619F95A9B3B82A38A89915C49AB44CD955DEAA22B3721B83E2A04868D5E4A7419281357A8F2CD1AEAC01DE91B0A0F51D86FCA5C05A10B069C0419341D1386425A7BAC280DB486166F39834EFFA49920733DB2859390782135B5EA48B3B26EAF307BF0E44339919CD71CEAF004301B966F0543A90AD0DDC66631EB9C8F96F1797E52D8A8952E5ACB928E513DA179719987F9B3F0875F5B95E22C1678BEAF1DE95B4D933091F6CD961F970D2E38D7A44622B7A9CCDBD4FFBD5DC8E9F169AB928C7978E5EE8751A5C56E0279029499480E4C2561D0B59F55F06D66A025B9651D4525DCBCE0FDBD1AC3721A98A80C6D2A224E22289FF364C925E2A99FEDE909E0E2D2898A75A55C0A6E2DEF7A795324260B543E28A71C283A661B561714A45DFBFCCC8289596C2BBC396EDA9ACCF3DCE5A926FE2CFB2D4EE6A82E38D0C2E4C0883AC1D3885655AE8937CD850EBCCCFE73D2DBAB1333D10B6D78D787D5D41E61F26534D46ACF273EA4590B2C06E81ED4B5941842A19D6F8E831EEA749B9DC60FDE182DBD92A928000038BD2A8D4000000048349D8D38677C8D040000000034921400F8

Xor TextBox2  Hex= em bits
 

E8DFB165331C4138C8E805630E1096FF58C99EA8B8D15FABFF55DCFCE64E08C241505FF27142C36D25685DCD9C63831C9B16C21761666F2AE8FF7533235B0BA85C8AE30CAFC1111346DC1414F07A5B5DBD358E759081B39833554B78AE594390328AC408C5869BC64056242F02E1BEE160B1477B90EFFD765800072DFF31147ADE154BECA3B84B3C2411CD146F2B6AF8FD91C43A05B0311497FF675B23351D2E52262902A6D6AE04154AB875C389780A9556BC79058A307E85303A63C0434F9F52CA60C5F093E7E8FC3B8A32B4EBA59219828F446189BE0DC056E2174213A27C4962CD9984BC9B67F646DEAAB953D6E74F19D58D450E57A90A2300E223E77F2E3B442B5479339D449F0F50AADFC0D59671EBE0CCA581AE5D0E6F5FC2F63BE06CFFAA7EEDB8D34204D5C8FCF0B1FB2AE3D6708F2F68FCCC74B09C45F03759708CBDA1A079FF2DB5F92ACF6C15ADBA2CE78E3BE96273E42052856E3FD56792E54537ACB9AA887355B6ABF0CB32D75099B3BF0586B0C389DA6BBBDA47B4671FEF13D6127B059FE1018D8C6B91285A588003EBA44045DF82B22DA4BCB86D30F22E6D55BE0EFB9B92BDB66771C5B97BC31EF8E9E469484E006D4891C335023A9F60446345D7E97E8446C80AD55CDC415497E95183346AABA9B6A126B04AC9808EBBEB16EC2802A81B8A3BB06929B8B3980EE1608939FF53E977495B02E00F359E1D33

resultado = em Bytes
 

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
Jota Torres

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...