0% found this document useful (0 votes)
5 views5 pages

Little Program

The document outlines a series of assembly instructions and function calls, detailing memory management and data manipulation operations. It includes calls to specific memory addresses, manipulation of registers, and conditional jumps based on comparisons. The code appears to be part of a low-level program, likely dealing with memory allocation and data processing routines.

Uploaded by

1781276061
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views5 pages

Little Program

The document outlines a series of assembly instructions and function calls, detailing memory management and data manipulation operations. It includes calls to specific memory addresses, manipulation of registers, and conditional jumps based on comparisons. The code appears to be part of a low-level program, likely dealing with memory allocation and data processing routines.

Uploaded by

1781276061
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

start:

call 0x44A770
push rbp
push rbx
push rcx
push rdx
push (rsi + rdi)
rsi = rdi
rdi = rdx
xor ebx, ebx
xor ecx, ecx
ebp = -1
call 0x44A560

0x44a594:(ebx = 0x80000000)
call r11
(eax = 1, ebx = 0xbfffffff)

0x44a56e:
rsi++
[rdi], dl
jmp 0x44a594

0x44A560:(rax = 0x194908, rdx=0x84a788, rbp=-1, rsi = 0x44a798, rdi=0x84a788, r8=8,


r10=32, r11=346)
(other zero)
cld (DF= 0, up)
pop r11(0x84a510)
cmp r8b, 8
jmp 0x44A576:
->
dl = [rsi](0xFE)
ebx = [rsi] (0xE6FFFFFE)
rsi + 4
dl = [rsi](0xe8)
adc ebx, ebx
jb 0x44a56E

0x44A62B:(edi = eax = 0x800000)


rdx = 0x1e
0x44A6F4:
pop rsi
rdi = 2
rax = 1
exit

0x44A705:
pop rbx (=0x44A78C)
push 1, 0x40000C, rax, 0x2d295e, rcx, r15
r10 = 0x32
mmap(0x800000(addr), 0x2d295e(len), 7(prot,rwx), flags(0x4000c8), 0(fd), 0(offset))
(rax = 0x800000, other para not change(rcx=0x44a4f4))
edi = eax
if not failed : jmp 0x44A62B(error, exit)
esi = 0x400000
edx = edi - esi (0x400000)
jz 0x44A757(=0)
ebp + edx (0x44A4F5 + 0x400000)
[rsp + 8](r15) += edx (0x4a424 + 0x400000)
[rsp + 0x18](rcx) += edx (0x4000c8 + 0x400000)
(0x44A74C)
ecx = (0x4a78c)
ecx >> 3 (0x94f1)
cld (DF=0, up)
rep movsq ([edi] = [esi]) (0x400000 ~0x44a78c ==>(copy) 0x800000
(0x44A757)
edi = eax (0x800000)
rsi = rbx (0x44A78C)
push rax (0x800000)
edx = edi
lodsd (rax = [rsi]dword) (0x672)
push rax (return to)
(0x44A75F)
rcx = rsp
edi = dword [rsi] (0x56c)
lodsd (rax = [rsi]dword) (0x194908)
movzx r8d, al (0x8)
xchg rdi, rsi
call rbp (0x44a798, 0x56c)
pop rcx
retn

0x44A770:
pop rbp (=0x44A4F5)
rax = rbp - 9
r15d = [rax] (0x0004A4EC)
edx = 0xc8
rax - r15
r15d - edx
rcx = rax + rdx ==> (0x4000c8)
call 0x44A705

rdi = 0x7fffffffcee0

[rbp-0x30] = rdi; 0x6e0

rsi:0x7fffffffcee0
rdi:0x7fffffffd6e0

0x568
dynamic: break *0x44a757
break *0x84a560
break *0x84A61A
set 0x84A61A = 0x59

0x84a510(0x44a510) func:(&ebx, &rsi, &dl)


add ebx, ebx
if Z=1: jmp 0x44A516
return

0x44A516:
mov ebx = [rsi]
rsi + 4
adc ebx, ebx
mov dl, [rsi]
return

new:
0x44A560:(rax = 0x194908, rdx=0x84a788, rbp=-1, rsi = 0x44a798, rdi=0x84a788, r8=8,
r10=32, r11=346)
(other zero)
cld(DF=0, up);
r11 = 0x84a510
jmp 0x44A576
jmp 0x44A61A (main code)

0x44A56E:{
rsi++
[rdi] = dl
inc rdi
0x44A576:
mov dl = [rsi]
add ebx, ebx (1)
if Z = 0: jmp 0x44A586
ebx = [rsi]
rsi + 4
adc ebx, ebx
dl = [rsi]
(0x44A586):
if jb(C=1): jmp 0x44A56E
eax = rcx + 1
jmp 0x44A594
}=

0x44A58D: { end block


{
dec eax
call r11
adc eax, eax

0x44A594:
call r11
adc eax, eax
add ebx, ebx (2)
if Z = 0:jmp 0x44A5A7
ebx = [rsi]
rsi + 4
adc ebx, ebx
dl = [rsi]

0x44A5A7:
jnb 0x44A58D(C=0)
}
sub eax, 3
jb(C = 1) 0x44A5CB: (eax < 3)
eax << 8
edx = dl;(zx)
or eax, edx
rsi++
eax ^ -1(0xffffffff)
if Z=1: jmp 0x44A61A (goto main code)
sar eax, 1
rbp = eax(sxd)
jb 0x44A601 (must be)
jmp 0x44A5D9
}

0x445CB: {
add ebx, ebx (3)
if Z = 0: jmp 0x44A5D7
ebx = [rsi]
rsi + 4
adc ebx, ebx
0x44A5D7:
jb (C=1) 0x44A601
0x44A5D9: {
ecx++
add ebx, ebx (4)
if Z=0: jmp 44A5E7
ebx = [rsi]
rsi + 4
adc ebx, ebx
0x44A5E7:
jb 0x44A601(C=1)
0x44A5E9
adc ecx, ecx
add ebx, ebx (5)
if Z=1: jmp 0x44A5FA
ebx = [rsi]
rsi + 4
adc ebx, ebx
0x44A5FA:
jnb 0x44A5E9(C=0)
add ecx, 2
jmp 0x44A606
}

0x44A601: {
call r11
adc ecx, ecx
0x44A606:
cmp rbp, 0xfffffffffffffb00
adc ecx, 2 (care about sub is borrow flag)
call 0x44A522
jmp 0x44A576 ==> next loop
}

0x44A522: (inline func)


rax = rdi + rbp
dl = [rax]
if ecx <= 5: jmp 0x44A54E
if rbp > -4: jmp 0x44A54E
ecx - 4;
0x44A54E:
rax++
[rdi] = dl
ecx--
dl = [rax]
rdi++
if ecx != 0:jmp 0x44A54E
return

break *0x44a757

0x6c1000
(0x84a971)
break *0x84a50b (6)

0x4011b0
0x41b180
jmp [0x499c80]

0x44d700 syscall
0x4225a1

0x400df3:
0x401171:"I will malloc()..."

0x41a0f8:mmap(0x1000)

You might also like