Extract sequences of bytes from binary for differents blocks


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract sequences of bytes from binary for differents blocks
# 50  
Old 09-03-2013
Can you provide the output of gdb <binary> <core> with backtrace?

--ahamed
# 51  
Old 09-03-2013
Hello ahamed,

<Binary> would be the binary file?

<Core> what should be core?

Send this command will generate the backtrace?
# 52  
Old 09-03-2013
Just gave this code another look over for you, and there still a slight chance of buffer overflow if a sub block is between 252 and 255 bytes.

We should also increase the buffer to 259 chars or test for len > 251 in the below code segment:

Code:
                 if(len > 255) {
                     fprintf(stderr, "Len overflow: %d\n", len);
                     return 1;
                 }

This is due to the fread starting at ptr+3
# 53  
Old 09-03-2013
Hello Chubler_XL,

Thanks for the help.

I've changed from len>255 to len >259 but still happens the same issue.
Code:
if(len > 259) { 
    fprintf(stderr, "Len overflow: %d\n", len);
    return 1;
}

And I've sent the gdb in the way below but I get error shown.
Code:
gdb binary script.exe.stackdump
 
"/cygdrive/c/Script/binary: not in executable format: File format not recognized
"/cygdrive/c/Script/script.exe.stackdump" is not a core dump: File format not recognized

Regards

Last edited by Ophiuchus; 09-03-2013 at 08:52 PM..
# 54  
Old 09-03-2013
No, that change won't help.

Either change the test to if (len > 251) {

OR change the buffer size to unsigned char buf[259];
# 55  
Old 09-03-2013
Hello Chubler_XL,

I've tried changing both options, one first and I tested and the same result, then
I changed only the buff[259] and the same problem.

I've done and hexdump and verified the block where the script stops, and I compared with the previos block that was processed succesfully and the differences are not to big, but are as follow:
Code:
For the last block processed correctly:
From 0x32 (begin) to end of block--> 442  bytes
From 0xff 0x34 (begin of sub-block) to end of block --> 327 bytes

For the block where the program stops:	
From 0x32(begin) to end of block --> 454 bytes
From 0xff 0x34(begin of sub-block) to end of block --> 328 bytes

Do you think this could be the issue? which buffer setting could be good to handle this block sligthly bigger?

Thanks in advance
# 56  
Old 09-03-2013
Be carefull, when a C program crashes like that you will usually have unwritten bytes in io buffers. Call fflush(stdout); after any printf to ensure you see the latest output.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Blocks of text in a file - extract when matches...

I sat down yesterday to write this script and have just realised that my methodology is broken........ In essense I have..... ----------------------------------------------------------------- (This line really is in the file) Service ID: 12345 ... (7 Replies)
Discussion started by: Bashingaway
7 Replies

2. Shell Programming and Scripting

Extract the part of sequences from a file

I have a text file, input.fasta contains some protein sequences. input.fasta is shown below. >P02649 MKVLWAALLVTFLAGCQAKVEQAVETEPEPELRQQTEWQSGQRWELALGRFWDYLRWVQT LSEQVQEELLSSQVTQELRALMDETMKELKAYKSELEEQLTPVAEETRARLSKELQAAQA RLGADMEDVCGRLVQYRGEVQAMLGQSTEELRVRLASHLRKLRKRLLRDADDLQKRLAVY... (8 Replies)
Discussion started by: rahim42
8 Replies

3. Shell Programming and Scripting

Extract length wise sequences from fastq file

I have a fastq file from small RNA sequencing with sequence lengths between 15 - 30. I wanted to filter sequence lengths between 21-25 and write to another fastq file. how can i do that? (4 Replies)
Discussion started by: empyrean
4 Replies

4. Shell Programming and Scripting

Extract sequences based on the list

Hi, I have a file with more than 28000 records and it looks like below.. >mm10_refflat_ABCD range=chr1:1234567-2345678 tgtgcacactacacatgactagtacatgactagac....so on >mm10_refflat_BCD range=chr1:3234567-4545678... tgtgcacactacacatgactagtatgtgcacactacacatgactagta . . . . . so on ... (2 Replies)
Discussion started by: Diya123
2 Replies

5. UNIX for Dummies Questions & Answers

X bytes of 0, Y bytes of random data, Z bytes of 5, T bytes of 1. ??

Hello guys. I really hope someone will help me with this one.. So, I have to write this script who: - creates a file home/student/vmdisk of 10 mb - formats that file to ext3 - mounts that partition to /mnt/partition - creates a file /mnt/partition/data. In this file, there will... (1 Reply)
Discussion started by: razolo13
1 Replies

6. Linux

Why does ext3 allocate 8 blocks for files that are few bytes long

The title is clear: why does ext3 allocate 8 blocks for files that are few bytes long? If I create a file named "test", put a few chars in it, and then I run: stat test I get that "Blocks: 8" I searched in the web and found that ext does that, it allocates 8 blocks even if It doesn't need... (4 Replies)
Discussion started by: Tavo
4 Replies

7. Shell Programming and Scripting

extract blocks of text from a file

Hi, This is part of a large text file I need to separate out. I'd like some help to build a shell script that will extract the text between sets of dashed lines, write that to a new file using the whole or part of the first text string as the new file name, then move on to the next one and... (7 Replies)
Discussion started by: cajunfries
7 Replies

8. Shell Programming and Scripting

Extract sequence blocks

Hi, I have an one-line file consisting of a sequence of 660 letters. I would like to extract 9-letter blocks iteratively: ASDFGHJKLQWERTYUIOPZXCVBNM first block: ASDFGHJKL 1nd block: SDFGHJKLQ What I have so far only gives me the first block, can anyone please explain why? cat... (7 Replies)
Discussion started by: solli
7 Replies

9. UNIX for Advanced & Expert Users

Deal with binary sequences

Hello, I have come across the necessity for me to deal with binary sequences and I had a few questions. 1- Does any UNIX scripting language provide any tool or command for converting text data to binary sequences? Example of binary sequence: "0x97 0x93 0x85 0x40 0xd5 0xd6 0xd7" 2- If I want... (2 Replies)
Discussion started by: Indalecio
2 Replies

10. Shell Programming and Scripting

Remove first N bytes and last N bytes from a binary file on AIX.

Hi all, Does anybody know or guide me on how to remove the first N bytes and the last N bytes from a binary file? Is there any AWK or SED or any command that I can use to achieve this? Your help is greatly appreciated!! Best Regards, Naveen. (1 Reply)
Discussion started by: naveendronavall
1 Replies
Login or Register to Ask a Question