I have the code from Internet source to prevent from displaying characters inputted in DOS Console with an external utility but I cannot understand this assembler line

hP1X500Pf3/f1/5++u5

and also what does in.com do?
Please help. Thanks,
saldy
============================================
@echo off
echo hP1X500Pf3/f1/5++u5>in.com

set /p password=Enter password:<nul
for /f "tokens=*" %%i in ('in.com') do set password=%%i
del in.com
echo.
echo The Password is:"%password%"
set password=""
============================================
Posted on 2004-07-01 21:53:40 by pure_asm_fan
That's not assembler, that's MSDOS batch file stuff. It is echoing (typing) the line and sending the output to a file called in.com. This should really be in the heap.
Posted on 2004-07-01 22:40:50 by donkey
The code in "in.com":
push    3150h

pop ax
xor ax, 3030h
push ax
pop bx ; 0160h
push ax
pop dx
inc dx
inc dx
inc dx ; 0163
push 23236223h
pop eax
sub eax, 24604056h
push eax
pop ebp ; FEC321CD
xor ebp, [bx]
xor [bx], ebp ; mov [160h], 0FEC321CDh
xor ax, 2B2Bh
jnz near ptr 160h ; int 21h / retn
Posted on 2004-07-01 23:18:35 by bitRAKE
IDA did not recognize it as a valid .com file, as i would have expected.
Posted on 2004-07-01 23:29:49 by Drocon
Can you help me to understand this piece of code?
Thanks
saldy.


The code in "in.com":


push 3150h
pop ax
xor ax, 3030h
push ax
pop bx ; 0160h
push ax
pop dx
inc dx
inc dx
inc dx ; 0163
push 23236223h
pop eax
sub eax, 24604056h
push eax
pop ebp ; FEC321CD
xor ebp, [bx]
xor [bx], ebp ; mov [160h], 0FEC321CDh
xor ax, 2B2Bh
jnz near ptr 160h ; int 21h / retn
Posted on 2004-07-01 23:51:58 by pure_asm_fan
Apparently it does nothing. That is, it writes some instructions (int 21h / retn) to quit to DOS into the address 160h, and then executes them. The clever part is that it's entirely coded using standard ASCII characters :)

EDIT: My mistake, thanks Jibz :)
It does the equivalent of:
mov ax,0AE6h

int 21h
retn
Posted on 2004-07-02 10:35:12 by QvasiModo

Can you help me to understand this piece of code?
Thanks
saldy.
I can only advise to get a 16-bit debugger (DEBUG.COM) and execute the program in the debugger. I have commented at key points to indicate what is really happening within the program.
Posted on 2004-07-02 14:07:23 by bitRAKE
In case bitRAKE's comments aren't enough, I'll add that AX=0AE6 after the last xor :alright:.
Posted on 2004-07-02 15:38:11 by Jibz