Done: Copy data as <language>
-
- Posts: 1
- Joined: 11 May 2014 21:25
Done: Copy data as <language>
Hello!
Currently HxD is able to copy the selected data as:
- Pascal
- C
- C#
- Java
- Visual Basic.NET
It is a feature that is very good and useful.
Have you ever considered adding more "copy as" languages?
I would like to see HxD that has ability to copy the data for example in the following languages:
- ASM
- Visual Basic 6
- Pure Basic
- Etc.
Hopefully this suggestion will be considered!
Currently HxD is able to copy the selected data as:
- Pascal
- C
- C#
- Java
- Visual Basic.NET
It is a feature that is very good and useful.
Have you ever considered adding more "copy as" languages?
I would like to see HxD that has ability to copy the data for example in the following languages:
- ASM
- Visual Basic 6
- Pure Basic
- Etc.
Hopefully this suggestion will be considered!
Re: Copy data as <language>
This is a really nice suggestion. I would indeed also like to see this in the near feature (if possible).
Not many programs out there are capable of doing this, so that would be awesome.
Saludos
Not many programs out there are capable of doing this, so that would be awesome.
Saludos
Re: Copy data as <language>
I would add Visual Basic 6, but unfortunately it does not support creating constant arrays of reasonable size. That's why it was removed and now there is only VB.NET which has a more flexible syntax.
What is the syntax for Pure Basic?
Do you really need those languages or is it nice to have?
I won't be adding random lists of languages as this requires work. So please make the "etc." explicit.
What is the syntax for Pure Basic?
Do you really need those languages or is it nice to have?
I won't be adding random lists of languages as this requires work. So please make the "etc." explicit.
Re: Copy data as <language>
Would be nice , i mean not many tools are as fast as HxD and support/have this ''feature''.Maël wrote: Do you really need those languages or is it nice to have?
Assembly and Purebasic are mainly the ones i was hoping for, just to make work easier. And Indeed, Visual basic 6 is old and dead. Not sure how you did the array through i believe there is a trick in 6 with data type currency. This is also what people use for shellcodes in it.Maël wrote: I won't be adding random lists of languages as this requires work. So please make the "etc." explicit.
Thanks for your reply!
Re: Copy data as <language>
Thanks. It would be helpful if you could tell me how to translate this into PureBasic:
You don't need to convert every byte to PureBasic syntax, but what matters is that you can express any byte in the range of 0..255; ideally in hexadecimal notation, but that's not required. What also matters is how to define the size of an array and how to assign it a set of values.
Ideally I would want to avoid assigning every member individually like this:
Code: Select all
unsigned char rawData[256] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23,
0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B,
0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83,
0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B,
0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3,
0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3,
0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB,
0xFC, 0xFD, 0xFE, 0xFF
};
Ideally I would want to avoid assigning every member individually like this:
Code: Select all
rawData[0x0] = 0x0;
rawData[0x1] = 0x1;
rawData[0x2] = 0x2;
rawData[0x3] = 0x3;
...
Re: Copy data as <language>
@Mael for puebasic could use this way:
Saludos
Code: Select all
Data.b $55,$8B,$EC,$81,$C4,$A4,$FA,$FF,$FF,$89,$45,$FC,$E8,$1B,$02,$00,$00,$89,$85,$CC
Data.b $FD,$FF,$FF,$BB,$F2,$0F,$56,$C6,$8B,$95,$CC,$FD,$FF,$FF,$E8,$19,$02,$00,$00,$89
Data.b $45,$F8,$BB,$A9,$8B,$80,$2D,$8B,$95,$CC,$FD,$FF,$FF,$E8,$06,$02,$00,$00,$89,$45
Data.b $F4,$BB,$85,$3B,$AE,$DB,$8B,$95,$CC,$FD,$FF,$FF,$E8,$F3,$01,$00,$00,$89,$45,$F0
Data.b $BB,$93,$35,$DF,$85,$8B,$95,$CC,$FD,$FF,$FF,$E8,$E0,$01,$00,$00,$89,$45,$EC,$BB
Data.b $8D,$CB,$B6,$5D,$8B,$95,$CC,$FD,$FF,$FF,$E8,$CD,$01,$00,$00,$89,$45,$E8,$BB,$53
Data.b $13,$C1,$78,$8B,$95,$CC,$FD,$FF,$FF,$E8,$BA,$01,$00,$00,$89,$45,$E4,$BB,$8A,$DB
Data.b $DF,$A5,$8B,$95,$CC,$FD,$FF,$FF,$E8,$A7,$01,$00,$00,$89,$45,$E0,$BB,$2E,$05,$50
Data.b $C8,$8B,$95,$CC,$FD,$FF,$FF,$E8,$94,$01,$00,$00,$89,$45,$DC,$BB,$85,$A1,$16,$A2
Data.b $8B,$95,$CC,$FD,$FF,$FF,$E8,$81,$01,$00,$00,$E8,$06,$00,$00,$00,$6E,$74,$64,$6C
Data.b $6C,$00,$5F,$57,$FF,$D0,$89,$85,$D0,$FD,$FF,$FF,$BB,$8B,$E3,$CD,$41,$8B,$D0,$E8
Saludos
Re: Copy data as <language>
Thanks for the hint. After some more research I could find this solution: http://www.forums.purebasic.com/english ... =3&t=53385
Modified slightly you get this:
If you have any comments on the naming of the variables/constants/types, now is your chance to voice them.
Modified slightly you get this:
Code: Select all
#RawDataItemCount = 9
DataSection
DS_RawData:
Data.b $09, $02, $03, $22, $01, $05, $06, $06, $07
EndDataSection
Structure RawDataArray
Items.b[#RawDataItemCount]
EndStructure
Define *rawData.RawDataArray = ?DS_RawData
; examples for accessing the raw data
Define i
; print to debug output as decimal numbers
For i = 0 To #RawDataItemCount - 1
Debug *rawData\Items[i]
Next
Debug ""
; print to debug output as hexadecimal numbers
For i = 0 To #RawDataItemCount - 1
Debug "$" + RSet(Hex(*rawData\Items[i]), 2, "0")
Next
Re: Copy data as <language>
I always use this way
saludos
Code: Select all
DataSection
DS_RawData:
Data.b $09, $02, $03, $22, $01, $05, $06, $06, $07
EndDataSection
Define *DS_RawData = ?DS_RawData
Nothing more.
saludos
Re: Copy data as <language>
Code: Select all
For i = 0 To #RawDataItemCount - 1
Debug *rawData[i]
Next
Please provide an example how you would iterate over the elements of the array using Debug statements.
Re: Copy data as <language>
Seems like there is some progress. Cool!
Re: Copy data as <language>
did you mean something like this:
I don't know if is possible with use array indexing.
saludos
Code: Select all
DataSection
DS_RawData:
Data.b $09, $02, $03, $22, $01, $05, $06, $06, $07
DS_RawDataEnd:
EndDataSection
For i=0 To ?DS_RawDataEnd-?DS_RawData-1
Debug PeekB(?DS_RawData+i)
Next
;Or
Debug #CRLF$
For i=1 To ?DS_RawDataEnd-?DS_RawData
Read.b DS_RawData
Debug DS_RawData
Next
I don't know if is possible with use array indexing.
saludos
Re: Copy data as <language>
Right, thanks.
In this case I think the slightly longer example with the structure above is better, because it allows array indexing.
Any opinions on the naming of the identifiers in the code? Lower or Uppercase? Any naming conventions in PureBasic?
In this case I think the slightly longer example with the structure above is better, because it allows array indexing.
Any opinions on the naming of the identifiers in the code? Lower or Uppercase? Any naming conventions in PureBasic?
Re: Copy data as <language>
Here is an alpha version of HxD that implements PureBasic export: http://mh-nexus.de/downloads/HxDalpha2.zip (1.62 MB)
This version is in German, but everything is at the same place as in the old version so it should be easy to find (Bearbeiten = Edit, Datei=File).
The export feature should work properly, if it doesn't please report it here in the forum. Other functions are not guaranteed to work since this is an alpha version.
This version is in German, but everything is at the same place as in the old version so it should be easy to find (Bearbeiten = Edit, Datei=File).
The export feature should work properly, if it doesn't please report it here in the forum. Other functions are not guaranteed to work since this is an alpha version.
Re: Copy data as <language>
Since there are no comments, I assume everything is fine.