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

📄 faq.txt

📁 this is aes algorithm
💻 TXT
字号:
Q: What machines will the PXE scraper work on?A: The scraper code will run on any x86 system that has PXE support. This   includes systems with built-in NICs and PXE-capable BIOSes and older   systems with add in ethernet cards that have their own PXE ROMs (i.e.   the Intel PRO/100 NIC with management support).Q: What systems have you tested the scraper code on?A: My laptop (Averatec Intel Celeron processor with RealTek 10/100 NIC)   Sun w2100z Javastation (dual AMD Opteron, Broadcom BCM5703 NIC)   IBM ThinkPad (also Broadcom NIC)   Intel Cappel Valley development board (Intel PRO/1000 NIC)   Soekris net4801 board (NatSemi DP83816 NIC)Q: Doesn't the scraper binary overwrite some of the target's memory itself?A: Yes, but there's no getting around that. It's designed to use as little   memory as possible. A typical binary image is only about 8K in size.   (And yes, the scraper will capture an image of itself.)Q: Are 64-bit systems supported?A: Yes. Both the PXE and disk based scrapers can be built either as   32-bit or 64-bit executables. The 64-bit versions will run on any   x86-64 system, including those with AMD Opteron, AMD Athlon 64,   Intel Xeon and Intel Core 2 Duo CPUs.Q: Will the 32-bit scraper work on 64-bit systems?A: Yes, but it will only run in 32-bit mode, and as such it won't be   able to access the entire 64-bit address space. (This means it will   only be able to access 3.5GB of RAM, even if your 64-bit system has   more than that.) If your 64-bit target system has less than 4GB of   RAM, then there's really no need to use the 64-bit scraper anyway.Q: Are there any limitations to the 64-bit version?A: In order to access more than 4GB of address space, an x86-64 CPU must   run in long mode, and paging must be enabled. Paging requires the use   of page tables, which consume additional memory. The bare minimum   configuration requires 3 4K page directories, which allows access to   up to 1GB of RAM. (Each page table contains 512 entries, and pages can   be either 4KB or 2MB in size. Using the 2MB page size, 2MB times 512   yields 1GB.) Once the first 640K segment of RAM has been dumped, both   scraper programs will populate an additional 63 page tables and add them   to the page directory, which provides access to up to 64GB of RAM.   It is possible to increase this limit by modifying the code in   bios-pc/x86-64/memmap.c, but 64GB is considered to be a reasonable   limit for the time being.Q: Will I be able to capture a useful memory dump from any system?A: Not necessarily, no. The amount of time data will remain viable in   RAM once power is removed varies enormously depending on a number   of factors, including the memory chip design, presence (or absence)   of filter capacitors, resistive loading, and even how hot the chips   are (cooler chips tend to retain their contents longer). Also, the   BIOS may destroy the contents of RAM immediately on startup. In some   cases, this is due only to a memory test, which is sometimes optional   and can be disabled. In other cases, it's because the system has ECC   RAM.Q: Why does it make a difference if I have ECC memory?A: ECC memory typically must be "scrubbed" (i.e. its entire contents   overwritten with zeros) by system bootstrap software before ECC   support can be enabled in the system memory controller. When the RAM   module is first powered up, all of its bits -- including the parity   bits used to detect memory errors -- are in unknown, garbage states.   If error detection is turned on before the RAM is scrubbed, the   uninitialized parity bits will signal false parity errors. To avoid   this, every memory cell must be written at least once prior to   enabling the error correction hardware in order to initialize all of   the parity bits to valid states. Unfortunately, this has the effect   of destroying whatever may have been in the memory to begin with.Q: Can I get around the ECC memory scrubbing?A: Some BIOSes offer a configuration option to disable ECC support. This   may also prevent the BIOS from scrubbing the RAM.Q: Do many PCs have ECC memory?A: Surprisingly, no. ECC memory is expensive, and as such it's used mainly   in high availability systems (such as servers).Q: Why doesn't the scraper code build on MacOS X?A: While the C compiler and assembler supplied with the Apple Xcode   distribution can compile the scraper code, I have yet to find a   way to convince the linker to link it properly. Also, the Xcode   environment does not include a full set of GNU binutils: most notably,   objcopy is missing. Without it, there's no way to generate a flat   binary image from the linked scraper executable.Q: Does that mean MacOS X can't be used at all?A: No: you can still use MacOS X to build the scraper, but first you'll   need to build a GCC cross compilation environment. This is not that   hard to do, since the scraper code does not need libgcc (which is   usually the hardest thing to generate when building a cross compiler).   If you build a cross compiler (and a set of GNU binutils) targeted for   i386-elf, you should be able to compile and link the scraper. Similarly,   a compiler and binutils targeted for x86_64-elf can be used to build   the 64-bit version.Q: Is the scraper a miniature operating system?A: No, it's a standalone program. It's entirely single-threaded: it does   not support multitasking, interrupt handling or memory protection.Q: I want to write my own OS. Will you help me?A: No.Q: How does the power down feature work?A: When the scraper quits, it attempts to shut down the system using   an APM BIOS call. An APM power-off should work on any system that   supports APM BIOS version 1.1 or later. (It works on my laptop   which has an AMP 1.2 BIOS.) This is not guaranteed to work however,   because APM has largely been deprecated in favor of ACPI. Sadly,   it's not practical to add ACPI support to the scraper. If the target   system has no APM BIOS, the scraper will trigger a CPU reset instead,   which should reboot the system.Q: Can I build this code on Windows?A: You can build the 32-bit versions of the PXE and USB scrapers, if you   install the Cygnus tools from www.cygwin.com or the MinGW tools from   www.mingw.org. Building the 64-bit versions has not been tested on   Windows, but will likely require building a cross compiler.Q: I want to modify/improve/experiment with this code, but the   compile/test/reboot cycle is very time consuming/tedious. Is   there a better way?A: Yes: I strongly recommend you use the QEMU simulator instead of real   hardware for testing (http://fabrice.bellard.free.fr/qemu). Version 0.9.0   and later support PXE simulation, network simulation, and support for   remote debugging via GDB. You need to set up the 'tap' pseudo-interface   driver in your OS to be able to load the scraper into the simulator via   simulated PXE. I typically use a command similar to the following to   launch qemu:   # qemu -boot n -net nic,macaddr=0:0:e8:1:2:3,model=rtl8139 -net tap     -S -s -p 1234 /dev/null   This launches the simulator, but freezes the CPU at startup to allow   time to attach gdb. To debug the code, you should compile it with the   -g option (which is not done by default) and then do:   % gdb scraper   (gdb) target remote localhost:1234   (gdb) c   You can also debug from the QEMU monitor, which can be accessed by typing   CTRL-ALT-2 in the QEMU window. (CTRL-ALT-1 returns to the main display.)Q: How can I build a 64-bit cross compiler that can be used to build the   64-bit scraper code?A: I used the following steps, which should work for you:   - Download the following packages:     ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.3.0/gcc-core-4.3.0.tar.bz2     ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.18.tar.bz2     ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.2.1.tar.gz     ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.3.0.tar.bz2     GCC 4.3.0 and binutils 2.18 are the latest available as of this     writing. Earlier versions may also work, however these were the     versions which were used in development. The GMP and MPFR libraries     are required to compile GCC 4.3.0. If you already have them on     your system, you can skip downloading and installing the,   - Build and install the GMP library first:     % cat gmp-4.2.1.tar.gz | gzip -d | tar -xvf -     % cd gmp-4.2.1     % configure --prefix=/usr/local/gnu     % gmake     % gmake install      - Build and install the mpfr library next:     % cat mpfr-2.3.0 | gzip -d | tar -xvf -     % cd mpfr-2.3.0     % configure --prefix=/usr/local/gnu --with-gmp=/usr/local/gnu     % gmake     % gmake install     Note that you may find shared versions of the GMP and MPFR libraries     have been built as well. These will end up in /usr/local/gnu/lib. If     /usr/local/gnu/lib isn't in your LD_LIBRARY_PATH, then gcc, when linked     against the shared versions of the libraries, may complain that it     can't find them. You can either set your LD_LIBRARY_PATH to include     /usr/local/gnu/lib, or you can move the shared libraries somewhere     that the linker won't see them, leaving just the static libraries     behind:     % cd /usr/local/gnu/lib     % mkdir shared     % mv *.so* shared   - Build and install a set of binutils targeted for x86_64-elf:     % cat binutils-2.18.tar.bz2 | bzip2 -d | tar -xvf -     % cd binutils-2.18     % mkdir mycrossbuild     % cd mycrossbuild     % ../configure --prefix=/usr/local/gnu --target=x86_64-elf     % gmake     % gmake install   - Lastly, build and install GCC. GCC 4.3.0 wants to link against the     GMP and MPFR libraries. The following instructions assume that     they've been installed in /usr/local/gnu as shown above:     % cat gcc-core-4.3.0.tar.bz2 | bzip2 -d | tar -xvf -     % cd gcc-4.3.0     % mkdir mycrossbuild     % cd mycrossbuild     % ../configure --prefix=/usr/local/gnu --target=x86_64-elf --with-gmp=/usr/local/gnu --with-mpfr=/usr/local/gnu     % gmake     % gmake install     % cd x86_64-elf/libgcc     % gmake install     Note that the GCC cross compilation will probably not complete (it     will fail when it gets to libssp). This is fine: libssp expects a     runtime environment, but we don't have one. All we really need is     the C compiler itself. Note that the instructions above also install     libgcc, but we don't actually need it.  Once these steps are completed, a complete cross build environment  should be available in /usr/local/gnu. This is the procedure that was  used to build the cross compiler used for development on FreeBSD/x86.  It should work on Linux or MacOS too.Q: How do I set up an iPod memory dumper?A: Do the following:   1) Get an iPod   2) iPods were (and possibly still are) available in two flavors: Mac and      Windows. The difference between them is that the Mac flavored ones      have an Apple HFS+ filesystem and partitioning scheme, while the Windows      ones use a PC-style MBR partitioning scheme and FAT filesystem. In order      to boot a PC from an iPod, it will need to be configured for Windows      flavor. Either make sure to obtain a Windows flavor one, or be prepared      to reconfigure your Mac flavored one. (The procedure for this is not      too difficult, but does require deleting any music currently on the      device.)   3) A Windows flavored iPod has a partition table and two partitions:      partition 1 contains just the iPod's firmware, and partition 2 takes      up all remaining storage space and contains all of the iPod's music      and/or video files. You will need to repartition the iPod to reduce      the size of the music/video content partition so that you can create      a separate partition to hold memory dumps. Note that this will destroy      the contents of the existing data partition (unless you have a special      disk editing software that is smart enough to preserve it). If possible,      back up files on this partition so that you can restore them later.      You want to partition the iPod's disk so that it contains 3 partitions:      Partition 1] iPod firmware      Partition 2] iPod data (MSDOS/FAT)      Partition 3] <unused>      Partition 4] Memory dumps      Partition 4's type field can be anything: the scraper software doesn't      look at it. All that's important is that an entry for partition 4 exist      in the partition table in the master boot record, and that it be big      enough to hold memory dumps (say, 3 or 4GB, at least).   4) The USB scraper includes a special bootstrap loader, boot.bin, which      should be installed into the master boot record in sector 0. This boot      code should be used instead of the standard MS-DOS boot block. Exactly      how you install this code depends on what disk editing tool(s) you use.      With FreeBSD, it can be installed with the fdisk command:      # fdisk -b boot.bin -B da0   5) Dump the scraper.bin code into partition 4 of the iPod. In FreeBSD, this      can be done as follows:      # dd if=scraper.bin of=/dev/da0s4   6) Reset the iPod and make sure that it can still load its firmware and      operate correctly. The amount of available storage on the iPod will      be reduced, since some of the disk space is now dedicated for use by      the memory dumper. Restore your music files to the data partition (or      load new ones, if you didn't save the old ones).   7) Plug the iPod into a target machine, and reset it. Tell the BIOS to      boot from the iPod instead of the internal disk. The BIOS will load      the boot sector into RAM at address 0x7c00 and run it, just like a      normal OS bootstrap. The boot block will then load the scraper binary      from the start of partition 4 and start it running. It should      automatically dump the entire contents of RAM to the iPod on partition      4, immediately after the scraper code. The dump process just writes      the memory contents directly do the disk in raw form, without using      any filesystem formatting.   8) Plug the iPod back into your host system, and recover the memory dump      using the usbdump command. On FreeBSD, this can be done as follows:      # usbdump /dev/da0s4 > memdump   9) You can use the iPod to capture another dump at any time. Any previous      dump will be overwritten.

⌨️ 快捷键说明

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