-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpam.asm
More file actions
73 lines (55 loc) · 1014 Bytes
/
pam.asm
File metadata and controls
73 lines (55 loc) · 1014 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
; linuxthor
;
; simple libpam example
;
; assemble with:
; nasm -f elf64 -o pam.o pam.asm
; gcc pam.o -no-pie -o pam -lpam -lpam_misc
;
BITS 64
STRUC pamconv
.fp: RESQ 1
.ep: RESB 1
ENDSTRUC
extern pam_start, pam_authenticate, pam_acct_mgmt, pam_end
extern misc_conv
%define PAM_SUCCESS 0
global main
main:
push rbp
mov rbp, rsp
mov rbx, misc_conv
mov [conv + pamconv.fp], rbx
mov rdi, chku
mov rsi, pamu
mov rdx, conv
mov rcx, pamh
xor rax, rax
call pam_start
cmp rax, PAM_SUCCESS
jne error
mov rdi, [pamh]
mov rsi, 0
call pam_authenticate
cmp rax, PAM_SUCCESS
jne error
mov rdi, [pamh]
mov rsi, 0
call pam_acct_mgmt
cmp rax, PAM_SUCCESS
jne error
mov rdi, [pamh]
mov rsi, rax
call pam_end
pop rbp
ret
error:
pop rbp
mov rax, 1
ret
section .data
pamu db 'weirduncle',0
chku db 'check_user',0
section .bss
pamh resq 1
conv resb pamconv_size