sgetsize.nas

来自「Cracker终结者——提供最优秀的软件保护技术」· NAS 代码 · 共 49 行

NAS
49
字号
;;
;; aPLib compression library  -  the smaller the better :)
;;
;; NASM safe assembler header access
;;
;; Copyright (c) 1998-2002 by Joergen Ibsen / Jibz
;; All Rights Reserved
;;

; define _ELF_ for ELF32 object files
; define _OBJ_ for OMF object files

bits 32

%include "apnasm.mac"

section aptext

cglobal aPsafe_get_orig_size,4

aplabel aPsafe_get_orig_size,4

    pushad

    mov    esi, [esp + 36]    ; esi -> buffer

    mov    ebx, [esi]         ; ebx = header.tag

    sub    eax, eax           ; eax = 0

    cmp    ebx, 032335041h    ; check tag == 'AP32'
    jne    short .return_eax

    mov    ebx, [esi + 4]     ; ebx = header.header_size
    cmp    ebx, byte 24       ; check header_size >= 24
    jb     short .return_eax

    mov    eax, [esi + 16]    ; eax = header.orig_size

.return_eax:
    mov    [esp + 28], eax    ; return unpacked length in eax

    popad
    apret 4

%ifdef _OBJ_
  section apdata
%endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?