Example #1
0
        $offset = 0;
        $size = 0;
        $b = new Binary($binary);
        $html = Pefile::call("res_offsets", $binary);
        preg_match_all("/RT_BITMAP (.+)/", $html, $i);
        if ($bitmap > count($i[1])) {
            die;
        }
        foreach ($i[1] as $bmp) {
            $count++;
            if ($count == $bitmap) {
                list($va, $offset_d, $size, $offset) = preg_split("/\\s/", $bmp);
                break;
            }
        }
        $header = $b->headerOf("RT_BITMAP");
        $data = $b->readBytesAtOffset($offset, $size);
        $out = "";
        if ($data[0] != "B" && $data[1] != "M") {
            $out = $header . $data;
        } else {
            $out = $data;
        }
    } else {
        $out = file_get_contents($cache_bitmap);
    }
    header("Content-Type: image/bmp");
    print $out;
    file_put_contents($cache_bitmap, $out);
}
exit;