Need to convert bytearray into text2pcap format


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Need to convert bytearray into text2pcap format
# 1  
Old 07-01-2019
Need to convert bytearray into text2pcap format

Hi,

I'm looking for a method to add hex increments as a first column to the following file.

Something like this:

Code:
0000
0010
0020
0030
0040
0050
0060
0070
0080
0090
00a0
00b0
00c0
00d0
00e0

I have the following logic, but am unsure how to get counter=hex value, and increment the hex value.

Can I please get some assistance around this?

Code:
$ awk 'BEGIN {counter=10} {print counter, $0; counter++}' capture.txt
10 84 78 ac 54 99 e4 bc 05 1d a2 00 62 00 c0 a2 00
11 00 fc 00 0c 29 15 6c c6 a8 9d 21 93 2b 90 81 00
12 02 6c 08 00 45 00 05 98 e5 5a 00 00 fe 11 11 ed
13 c0 a8 15 06 ac 11 3e 4d d6 d7 08 07 05 84 2d 8e
14 00 09 00 0d 60 b1 29 8d 5d 12 c8 10 32 f8 3a 00
15 00 00 00 00 01 09 00 88 d6 0f a5 f6 67 13 da 1e
16 ca da 00 17 11 38 88 c5 03 e1 00 06 06 00 00 67
17 13 da 1e 11 38 88 c5 ca da 03 e1 02 07 f0 00 00
18 01 6b 91 5d 81 06 00 00 00 00 00 00 05 24 00 00
19 00 00 00 00 1f 9d 00 00 00 00 00 00 00 1b 00 00
20 00 00 00 00 00 12 00 00 01 6b 91 5d 12 20 04 71
21 c2 50 26 5c 0a 8e 55 56 f9 1d 00 00 00 00 00 00
22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
23 00 00 00 00 00 00 00 00 00 00 00 00 01 07 01 08
24 d6 0f 9e 69 67 13 da 1e 13 da 1e 11 38 88 c5 65

Thanks.
# 2  
Old 07-01-2019
Try
Code:
awk '{printf "%04x %s\n", counter, $0; counter += NF}'  file
0000 84 78 ac 54 99 e4 bc 05 1d a2 00 62 00 c0 a2 00
0010 00 fc 00 0c 29 15 6c c6 a8 9d 21 93 2b 90 81 00
0020 02 6c 08 00 45 00 05 98 e5 5a 00 00 fe 11 11 ed
.
.
.

This User Gave Thanks to RudiC For This Post:
# 3  
Old 07-01-2019
Hi RudiC,

That works perfectly.

Code:
awk '{printf "%04x %s\n", counter, $0; counter += NF}' capture.txt

From what I understand, %04x pads the first element with 0s to make up 4 digits in hex, and is assigned to variable counter. After this, we print the rest of the line as a string.

However I cannot understand why we need counter+=NF in this case, as NF should be 16. Can you please explain this logic? Can we use something else to accomplish this (i.e for loop).

Thanks.
# 4  
Old 07-02-2019
Quote:
Originally Posted by sand1234
...

%04x pads the first element with 0s to make up 4 digits in hex,
Yes

Quote:
and is assigned to variable counter.
No. It's used as printf's "format string" to be used for variable counter


Quote:
After this, we print the rest of the line as a string.
YES, be aware of the strike through.

[QUOTE]However I cannot understand why we need counter+=NF in this case, as NF should be 16. Can you please explain this logic? [QUOTE]
The counter in fact is a pointer into the file, starting at the zeroth byte, then at the 16th, etc. Thus adding the line length (better: line's byte count) keeps the pointer pointing to the correct file position.

Quote:
Can we use something else to accomplish this (i.e for loop).
What?
This User Gave Thanks to RudiC For This Post:
# 5  
Old 07-03-2019
discussing further with RudiC

Hi RudiC,

Interesting to know - when you say a pointer do you mean a pointer, say in the C programming language? Or just a pointer to the location.

In terms of for loop, I was wondering whether we could change the syntax to be more verbose like this:

Code:
awk -v counter=0000 'BEGIN { for (i = 1; i <= NR; ++i) printf "%04x %s\n, ", counter, $0; counter+=10}'

Additionally I'm not sure what part of the awk statement tells the first column to increment by 10, i.e. from 0000 to 0010. That's why I put a counter+=10 above.

Thanks.
# 6  
Old 07-03-2019
Those 0000 and 0010 are hexadecimals, and the difference is 16. That's why I added NF which is the count of the 16 line elements. The scriptwould work with 14, 15, or 17 element lines as well.


Call it counter or pointer, it's an indicator of the position in file. A (typed) pointer in C is pointing to the memory location of a structure (type). Yes, there are similarities.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl module to convert xlsx format to xls format

Hi Folks, I have written a perl script that reads data from excel sheet(.xls) using Spreadsheet::ParseExcel module. But the problem is this module doesn't work for excel sheets with extension .xlsx. I have gone through Spreadsheet::XLSX module with which we can read from .xlsx file directly.... (1 Reply)
Discussion started by: giridhar276
1 Replies

2. Shell Programming and Scripting

Convert UNIX file format to PC format

Hi All, Is there any way to convert a file which is in UNIX format to a PC format.... Flip command can be used , apart form this command can we have any other way.... like usinf "awk" etc ..... main purpose of not using flip is that my Kshell doesnot support this comamnd.... (2 Replies)
Discussion started by: Samtel
2 Replies

3. UNIX for Dummies Questions & Answers

Convert UNIX file format to PC format

Hi All, Is there any way to convert a file which is in UNIX format to a PC format.... Flip command can be used , apart form this command can we have any other way.... like usinf "awk" etc ..... main purpose of not using flip is that my Kshell doesnot support this comamnd.... (1 Reply)
Discussion started by: Samtel
1 Replies

4. Shell Programming and Scripting

convert date format to mysql date format in log file

I have a comma delimited log file which has the date as MM/DD/YY in the 2nd column, and HH:MM:SS in the 3rd column. I need to change the date format to YYYY-MM-DD and merge it with the the time HH:MM:SS. How will I got about this? Sample input 02/27/09,23:52:31 02/27/09,23:52:52... (3 Replies)
Discussion started by: hazno
3 Replies

5. Shell Programming and Scripting

Convert Epoch time format to normal date time format in the same file

I have a file named "suspected" with series of line like these : {'protocol': 17, 'service': 'BitTorrent KRPC', 'server': '219.78.120.166', 'client_port': 52044, 'client': '10.64.68.44', 'server_port': 8291, 'time': 1226506312L, 'serverhostname': ''} {'protocol': 17, 'service': 'BitTorrent... (3 Replies)
Discussion started by: rk4k
3 Replies

6. Programming

How to convert byteArray variables to HexaString variables for Linux?

Hello everybody, I am having problem in converting byte array variables to Hexa String variables for Linux. I have done, converting byte array variables to Hexa String variables for Windows but same function doesn't work for linux. Is there any difference in OS ? The code for Windows is given... (2 Replies)
Discussion started by: ritesh_163
2 Replies

7. UNIX for Dummies Questions & Answers

To convert multi format file to a readable ascii format

Hi I have a file which has ascii , binary, binary decimal coded,decimal & hexadecimal data with lot of special characters (like öƒ.ƒ.„İİ¡Š·œƒ.„İİ¡Š· ) in it. I want to standardize the file into ASCII format & later use that as source . Can any one suggest a way a logic to convert such... (5 Replies)
Discussion started by: gaur.deepti
5 Replies

8. UNIX for Dummies Questions & Answers

Convert UTF8 Format file to ANSI format

:confused: Hi i am trying to convert a file which is in UTF8 format to ANSI format i tried to use the function ICONV but it is throwing error Function i used it as $ iconv -f UTF8 -t ANSI filename Error iam getting is NOT Supported UTF8 to ANSI please some help me out on... (9 Replies)
Discussion started by: rajreddy
9 Replies

9. UNIX for Advanced & Expert Users

Convert UTF8 Format file to ANSI format

:) Hi i am trying to convert a file which is in UTF8 format to ANSI format i tried to use the function ICONV but it is throwing error Function i used it as $ iconv -f UTF8 -t ANSI filename Error iam getting is NOT Supported UTF8 to ANSI please some help me out on this.........Let me... (1 Reply)
Discussion started by: rajreddy
1 Replies

10. Shell Programming and Scripting

convert mmddyy date format to ccyyddd format??

hi, for reading a cobol indexed file i need to convert "mmddyy" date format to "ccyyddd" format. i checked the datecalc and other scripts but couldnt modify them to cater to my need:(... The datecalc gives an output which i believe is the total days till that date, but i want to convert it... (2 Replies)
Discussion started by: Bhups
2 Replies
Login or Register to Ask a Question