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
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(.$..._...<..<`IRD5.a.@.B7v.0W..... ...v..-..,..<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
exemplo. xor
Textbox1 ^ Textbox2 = resultado
Textbox1 Hex = em bits
Xor TextBox2 Hex= em bits
resultado = em Bytes
Peço desculpa pelo atrevimento de colocar, logo de inicio uma questão tão prolongada
mas é que já ando nisto a 3 semanas e não estou a conseguir o que pretendo.
Agradeço desde já uma ajuda
Obrigado
Onsitbin
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ódigo:
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 {
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(.$..._...<..<`IRD5.a.@.B7v.0W..... ...v..-..,..<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ódigo:
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); }
Textbox1 ^ Textbox2 = resultado
Textbox1 Hex = em bits
Código:
7C91CFBD0D8F3240FB00762D018B104D87D98DAB7593982E0231B5C9608049586B08C7D6B27606E55504BCCCF43BE45E64FE7BC9CA74294EAA62948C1946D95B56C5E25D8A1F770D5D5D8FB3992CAFF2494AD575B81C9E011D3ED55CEAC61C9619F95A9B3B82A38A89915C49AB44CD955DEAA22B3721B83E2A04868D5E4A7419281357A8F2CD1AEAC01DE91B0A0F51D86FCA5C05A10B069C0419341D1386425A7BAC280DB486166F39834EFFA49920733DB2859390782135B5EA48B3B26EAF307BF0E44339919CD71CEAF004301B966F0543A90AD0DDC66631EB9C8F96F1797E52D8A8952E5ACB928E513DA179719987F9B3F0875F5B95E22C1678BEAF1DE95B4D933091F6CD961F970D2E38D7A44622B7A9CCDBD4FFBD5DC8E9F169AB928C7978E5EE8751A5C56E0279029499480E4C2561D0B59F55F06D66A025B9651D4525DCBCE0FDBD1AC3721A98A80C6D2A224E22289FF364C925E2A99FEDE909E0E2D2898A75A55C0A6E2DEF7A795324260B543E28A71C283A661B561714A45DFBFCCC8289596C2BBC396EDA9ACCF3DCE5A926FE2CFB2D4EE6A82E38D0C2E4C0883AC1D3885655AE8937CD850EBCCCFE73D2DBAB1333D10B6D78D787D5D41E61F26534D46ACF273EA4590B2C06E81ED4B5941842A19D6F8E831EEA749B9DC60FDE182DBD92A928000038BD2A8D4000000048349D8D38677C8D040000000034921400F8
Código:
E8DFB165331C4138C8E805630E1096FF58C99EA8B8D15FABFF55DCFCE64E08C241505FF27142C36D25685DCD9C63831C9B16C21761666F2AE8FF7533235B0BA85C8AE30CAFC1111346DC1414F07A5B5DBD358E759081B39833554B78AE594390328AC408C5869BC64056242F02E1BEE160B1477B90EFFD765800072DFF31147ADE154BECA3B84B3C2411CD146F2B6AF8FD91C43A05B0311497FF675B23351D2E52262902A6D6AE04154AB875C389780A9556BC79058A307E85303A63C0434F9F52CA60C5F093E7E8FC3B8A32B4EBA59219828F446189BE0DC056E2174213A27C4962CD9984BC9B67F646DEAAB953D6E74F19D58D450E57A90A2300E223E77F2E3B442B5479339D449F0F50AADFC0D59671EBE0CCA581AE5D0E6F5FC2F63BE06CFFAA7EEDB8D34204D5C8FCF0B1FB2AE3D6708F2F68FCCC74B09C45F03759708CBDA1A079FF2DB5F92ACF6C15ADBA2CE78E3BE96273E42052856E3FD56792E54537ACB9AA887355B6ABF0CB32D75099B3BF0586B0C389DA6BBBDA47B4671FEF13D6127B059FE1018D8C6B91285A588003EBA44045DF82B22DA4BCB86D30F22E6D55BE0EFB9B92BDB66771C5B97BC31EF8E9E469484E006D4891C335023A9F60446345D7E97E8446C80AD55CDC415497E95183346AABA9B6A126B04AC9808EBBEB16EC2802A81B8A3BB06929B8B3980EE1608939FF53E977495B02E00F359E1D33
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
mas é que já ando nisto a 3 semanas e não estou a conseguir o que pretendo.
Agradeço desde já uma ajuda
Obrigado
Onsitbin