i386-dos32.tmt.s

来自「UPX 源代码」· S 代码 · 共 105 行

S
105
字号
/*;  i386-dos32.tmt.S -- loader & decompressor for the tmt/adam format;;  This file is part of the UPX executable compressor.;;  Copyright (C) 1996-2007 Markus Franz Xaver Johannes Oberhumer;  Copyright (C) 1996-2007 Laszlo Molnar;  All Rights Reserved.;;  UPX and the UCL library are free software; you can redistribute them;  and/or modify them under the terms of the GNU General Public License as;  published by the Free Software Foundation; either version 2 of;  the License, or (at your option) any later version.;;  This program is distributed in the hope that it will be useful,;  but WITHOUT ANY WARRANTY; without even the implied warranty of;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the;  GNU General Public License for more details.;;  You should have received a copy of the GNU General Public License;  along with this program; see the file COPYING.;  If not, write to the Free Software Foundation, Inc.,;  59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.;;  Markus F.X.J. Oberhumer              Laszlo Molnar;  <mfx@users.sourceforge.net>          <ml1050@users.sourceforge.net>;*/#include        "arch/i386/macros.S"// =============// ============= ENTRY POINT// =============start:section         TMTMAIN1                mov     edi, 0          // relocated                push    edi                lea     esi, [edi + copy_source]                sub     edi, offset copy_destsection         TMTMAIN1A                sbb     ebp, ebp        // ebp = -1section         TMTMAIN1B                mov     ecx, offset bytes_to_copy                std                rep                movsb                cld                lea     esi, [edi + 1]                pop     edi                push    edisection         TMTCALT1                push    edisection         TMTMAIN2                jmp     decompressor#include        "include/header.S"section TMTCUTPOdecompressor:// =============// ============= DECOMPRESSION// =============#include "arch/i386/nrv2b_d32.S"#include "arch/i386/nrv2d_d32.S"#include "arch/i386/nrv2e_d32.S"#include "arch/i386/lzma_d.S"section         TMTMAIN5                pop     ebp                mov     esi, edi                sub     esi, [edi - 4]// =============// ============= CALLTRICK// =============section         TMTCALT2                pop     edi                cjt32   ebpsection         ctok32.00                mov     ecx, offset filter_length                ctok32  ebp, (offset filter_cto)// =============// ============= RELOCATION// =============section         TMTRELOC                lea     edi, [ebp - 4]                reloc32 esi, edi, ebpsection         TMTJUMP1                jmp     original_entry// vi:ts=8:et:nowrap

⌨️ 快捷键说明

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