⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scheck.nas

📁 Cracker终结者——提供最优秀的软件保护技术
💻 NAS
字号:
;;
;; aPLib compression library  -  the smaller the better :)
;;
;; NASM safe assembler crc checker
;;
;; 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_check,4

cextern aP_crc32

aplabel aPsafe_check,4

    pushad

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

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

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

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

    add    ebx, esi           ; ebx -> packed data

    push   dword [esi + 8]    ; push header.packed_size
    push   ebx
    call   aP_crc32
    apadjust 8                ; adjust stack (function is cdecl)

    cmp    eax, [esi + 12]    ; check eax == header.packed_crc

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

    je     short .return_eax

.return_zero:
    sub    eax, eax           ; eax = 0

.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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -