기계어에서 null (00)을 제거하는 방법을 알아야합니다. 나는 어셈블리 언어로 코드를 작성했다. 그것은 성공적으로 실행 중입니다. 내가 NULL없이 출력을 필요기계 코드에서 NULL (00)을 제거하는 방법?
.data
Bash:
.asciz "/bin/hostname"
Null1:
.int 0
AddrToBash:
.int 0
NULL2:
.int 0
.text
.globl _start
_start:
#execute routine
xor %eax,%eax
movl $Bash, AddrToBash
movl $11,%eax
movl $Bash,%ebx
movl $AddrToBash,%ecx
movl $NULL2,%edx
int $0x80
#exit routine
Exit:
movl $10,%ebx
movl $1,%eax
int $0x80
다음 출력이
4000b0: 31 c0 xor %eax,%eax
4000b2: c7 04 25 f2 00 60 00 movl $0x6000e0,0x6000f2
4000b9: e0 00 60 00
4000bd: b8 0b 00 00 00 mov $0xb,%eax
4000c2: bb e0 00 60 00 mov $0x6000e0,%ebx
4000c7: b9 f2 00 60 00 mov $0x6000f2,%ecx
4000cc: ba f6 00 60 00 mov $0x6000f6,%edx
4000d1: cd 80 int $0x80
00000000004000d3 <Exit>:
4000d3: bb 0a 00 00 00 mov $0xa,%ebx
4000d8: b8 01 00 00 00 mov $0x1,%eax
4000dd: cd 80 int $0x80
방법 00을 제거하는 것입니다, 가 나는 blahahahahahaha (BL)에
al
,
bx
에
eax
같이 변경 ......하지만 않았다 작동하지 않습니다 누군가가 수정할 수 있습니다 .......
게시글의 점수 하한치를 수정하십시오. –
나는 왜 사람들이 마법 "형식 코드"버튼을 클릭하는 것이 그렇게 어려운지 결코 이해할 수 없을 것이다. 또는 사람들이 미리보기 *를 보지 않고 왜 코드의 절반이 잘못된 서식으로 인해 표시되지 않는지 알 수 있습니다 **. ** 자신의 ** 질문을 보는데 귀찮게 할 수 없다면, 왜 다른 사람이 그것을 읽으 리라고 기대합니까? – jalf
"null이 아닌"무엇을 의미합니까? 어떤 널을 제거 하시겠습니까? * 왜 *? – jalf