123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_ZUCCHINI_ZUCCHINI_TOOLS_H_
- #define COMPONENTS_ZUCCHINI_ZUCCHINI_TOOLS_H_
- #include <iosfwd>
- #include <string>
- #include <vector>
- #include "components/zucchini/buffer_view.h"
- #include "components/zucchini/zucchini.h"
- namespace zucchini {
- // The functions below are called to print diagnosis information, so outputs are
- // printed using std::ostream instead of LOG().
- // Prints stats on references found in |image|. If |do_dump| is true, then
- // prints all references (locations and targets).
- status::Code ReadReferences(ConstBufferView image,
- bool do_dump,
- std::ostream& out);
- // Prints regions and types of all detected executables in |image|. Appends
- // detected subregions to |sub_image_list|.
- status::Code DetectAll(ConstBufferView image,
- std::ostream& out,
- std::vector<ConstBufferView>* sub_image_list);
- // Prints all matched regions from |old_image| to |new_image|.
- // |imposed_matches|, if non-empty, encodes custom element matching to override
- // the default element detection and matching heuristics, and is formatted as:
- // "#+#=#+#,#+#=#+#,..." (e.g., "1+2=3+4", "1+2=3+4,5+6=7+8"),
- // where "#+#=#+#" encodes a match as 4 unsigned integers:
- // [offset in "old", size in "old", offset in "new", size in "new"].
- status::Code MatchAll(ConstBufferView old_image,
- ConstBufferView new_image,
- std::string imposed_matches,
- std::ostream& out);
- } // namespace zucchini
- #endif // COMPONENTS_ZUCCHINI_ZUCCHINI_TOOLS_H_
|