Is there a tool for putting hex code of an executable in a source file ?
The source file should look like this :


.data
normal_data dd 0
handle dd 0
Filename db "Filename.dll",0

;----------------- here comes the hex code --------------------------
abc db 0e9h,010h,001h,026h,0a0h,028h,000h,0f6h,0d0h,02eh,030h,006h,022h,001h
db 0beh,02bh,001h,08bh,0feh,0b9h,008h,000h,02eh,0ach,040h,0d1h,0e3h,00bh,0d8h
db 0e2h,0f7h,02eh,088h,01dh,047h,081h,0ffh,0adh,008h,075h,0eah,0ebh,000h,0e8h
db 056h,006h,0b8h,081h,0f0h,0cdh,013h,03dh,08ch,092h,074h,003h,0e8h,0d8h,000h
db 08ch,0c1h,083h,0c1h,010h,0b8h,034h,012h,003h,0c1h,08eh,0d0h,0bch,034h,012h
db 0b8h,034h,012h,003h,0c1h,050h,068h,034h,012h,033h,0c0h,0cbh,053h,0bbh,034h
db 012h,0e4h,040h,032h,0d8h,0e4h,040h,002h,0f8h,0e4h,041h,02ah,0d8h,0e4h,041h
db 032h,0f8h,0e4h,042h,002h,0d8h,0e4h,042h,02ah,0f8h,02eh,089h,01eh,058h,001h
db 093h,05bh,0a8h,001h,0c3h,053h,052h,093h,0e8h,0d4h,0ffh,033h,0d2h,0f7h,0f3h
db 092h,05ah,05bh,0a8h,001h,0c3h,051h,0b1h,059h,0e8h,04eh,000h,02eh,088h,02eh
db 0afh,001h,041h,0e8h,045h,000h,02eh,088h,02eh,0b5h,001h,041h,0e8h,03ch,000h
db 02eh,088h,02eh,0bbh,001h,059h,0c3h,090h,051h,0b9h,059h,000h,0e8h,03ah,000h
db 041h,0b5h,012h,0e8h,034h,000h,041h,0b5h,012h,0e8h,02eh,000h,059h,0c3h,051h
db 0b1h,059h,02eh,08ah,02eh,0afh,001h,080h,0e5h,08fh,080h,0cdh,030h,0e8h,01bh
db 000h,041h,0b5h,033h,0e8h,015h,000h,041h,0b5h,033h,0e8h,00fh,000h,059h,0c3h
db 066h,050h,052h,0e8h,014h,000h,0ech,08ah,0e8h,05ah,066h,058h,0c3h,066h,050h
db 052h,0e8h,007h,000h,08ah,0c5h,0eeh,05ah,066h,058h,0c3h,066h,0b8h,000h,000h
db 000h,080h,08ah,0c1h,024h,0fch,0bah,0f8h,00ch,066h,0efh,080h,0c2h,004h,08ah
db 0c1h,024h,003h,002h,0d0h,0c3h,01eh,006h,00eh,01fh,0fah,0fch,0e8h,070h,0ffh
db 0a0h,0afh,001h,0feh,0c0h,074h,058h,0e8h,0b8h,000h,075h,053h,0e8h,053h,000h
db 074h,00bh,0e8h,074h,000h,074h,006h,0e8h,07ch,000h,074h,001h,0c3h,0e8h,086h
db 0ffh,0b8h,042h,000h,0e8h,03bh,0ffh,003h,0e8h,083h,0c5h,00fh,083h,0e5h,0f0h
db 0c1h,0edh,004h,08ch,0c0h,003h,0c5h,02dh,010h,000h,08eh,0c0h,0bfh,000h,001h
db 0c6h,006h,082h,008h,0eah,0c7h,006h,083h,008h,017h,003h,08ch,006h,085h,008h
db 08ch,006h,0b6h,005h,0beh,000h,001h,0b9h,007h,008h,0f3h,0a4h,0e8h,035h,003h
db 0e8h,032h,0ffh,033h,0c0h,007h,01fh,0c3h,068h,000h,0c0h,007h,033h,0ffh,032h
db 0d2h,026h,08ah,075h,002h,0d1h,0e2h,073h,002h,0b6h,080h,081h,0eah,069h,008h
db 033h,0c0h,08bh,0efh,0b9h,025h,004h,0f3h,0afh,074h,004h,03bh,0fah,076h,0f3h
db 0c3h,0b8h,030h,011h,0b7h,002h,0cdh,010h,08ch,0c0h,03dh,000h,0c0h,0c3h,068h
db 000h,0c0h,007h,033h,0ffh,0b9h,00eh,000h,032h,0c0h,0f3h,0aeh,075h,015h,0b9h
db 010h,000h,0f3h,0aeh,026h,081h,07dh,0ffh,07eh,081h,075h,008h,026h,081h,07dh
db 00dh,07eh,0ffh,074h,006h,081h,0ffh,000h,0f0h,076h,0dch,08bh,0efh,0c3h,0b4h
db 013h,0cdh,02fh,08ch,0c1h,02eh,089h,01eh,02bh,003h,02eh,08ch,006h,02dh,003h
db 0cdh,02fh,081h,0f9h,000h,0f0h,0c3h,03dh,081h,0f0h,074h,019h,03dh,000h,04bh
db 074h,00fh,080h,0fch,043h,074h,00ah,080h,0fch,03dh,074h,005h,0eah,000h,000h
db 000h,000h,0e8h,048h,000h,0ebh,0f6h,0b8h,08ch,092h,0cfh,03dh,081h,0f0h,074h
db 0f7h,0e8h,0a2h,0feh,0e8h,089h,002h,02eh,0a3h,05ch,005h,0e8h,082h,0feh,09ch
db 09ah,000h,000h,000h,000h,09ch,0e8h,08eh,0feh,02eh,080h,03eh,05dh,005h,002h
db 075h,00dh,026h,081h,03fh,04dh,05ah,075h,003h,0e8h,0e4h,001h,0e8h,012h,002h
db 0e8h,060h,002h,0e8h,05dh,0feh,09dh,0cah,002h,000h,09ch,02eh,0ffh,01eh,00ah
db 003h,0c3h,0e8h,065h,0feh,02eh,0c6h,006h,0abh,001h,0c3h,060h,01eh,006h,0fch
db 0b8h,000h,03dh,0e8h,0e6h,0ffh,00fh,082h,066h,001h,093h,0b4h,03fh,00eh,01fh
db 0bah,087h,008h,0b9h,040h,000h,0e8h,0d4h,0ffh,03bh,0c1h,00fh,085h,04dh,001h
db 0a1h,087h,008h,03dh,04dh,05ah,074h,007h,03dh,05ah,04dh,00fh,085h,03eh,001h



.code
start_of_code:

...


ect...
Posted on 2001-11-08 14:52:55 by Axial
it wouldn't do you much good I'm afraid. If you want to
execute the code, there's a LOT of issues. If you want to
write a dll to disk and load it, that's a lot easier.

As for a tool to produce such dumps... google the net for
"bin2hex". Or look at "bin2o" at http://bitpage.cjb.net
Posted on 2001-11-08 17:31:17 by f0dder
I'm pretty sure that hutch's masm32 package includes a tool like this. -hold on a sec-

yup yup

It's called Bin2Db.exe.

...at least I think it's part of the masm package. I don't remember dl'ing it separately.

-shrugs-
Posted on 2001-11-08 19:22:46 by Will
Axial,

There are two ways of doing it depending on what you need, you can use the tool from MASM32 to produce a DB listing that you can put directly in your code section or you can write the data in the .DATA section with the normal syntax.

To use the DB format in your code section, you must NOT execute it, jump over it but call the address. In the .DATA section you will have to split the data up into different lines as there is a line length limit in MASM.

Regards,

hutch@movsd.com
Posted on 2001-11-08 19:39:30 by hutch--
Yes I found Bintodb.exe in Masm32 directory and it works fine !

Thanks to all !!!
Posted on 2001-11-09 07:35:50 by Axial
FAsm has a directive called file. It will place a file byte for byte into your executable.
Posted on 2001-11-09 16:00:47 by eet_1024
Hi Axial !

Great prog., but I have found a way to make it more effective.
Instead of copying the whole file to pMem, I think you can use a pointer directly to the StartPopUp offset!

mov ecx,OFFSET EndPopUp - OFFSET StartPopUp ; 3584 bytes
push ecx
invoke CreateFile,GENERIC_WRITE,0,0,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0
mov hFile,eax
pop ecx
invoke WriteFile, hFile, offset StartPopUp, ecx, addr written, 0
invoke CloseHandle,hFile
invoke MoveFile, addr Fname, addr Fname2
invoke ExitProcess,0


/Delight
Posted on 2001-11-10 12:53:43 by Delight
Thank you Delight !

You're code works perfect !


StartPoPup:
.........
EndPopUp:

invoke CreateFile, addr Fname, GENERIC_WRITE,0,0,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0
mov hFile,eax
mov ecx,OFFSET EndPopUp - OFFSET StartPopUp ; 3584 bytes
invoke WriteFile, hFile, offset StartPopUp, ecx, addr written, 0
invoke CloseHandle,hFile
invoke MoveFile, addr Fname, addr Fname2
invoke ExitProcess,0



I mean I should think simpler next time:)
Posted on 2001-11-10 14:22:53 by Unregistered