Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Pedido de ajuda em C#

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C# Pedido de ajuda em C#

    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ó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
                    {
    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

    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);
             }
    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 já ando nisto a 3 semanas e não estou a conseguir o que pretendo.
    Agradeço desde já uma ajuda
    Obrigado
    Onsitbin
X
Working...
X