From 2b4274afc4fae883d1251a7a420e24fd526a9f16 Mon Sep 17 00:00:00 2001 From: "cdn@chromium.org" Date: Fri, 1 Oct 2010 22:38:10 +0000 Subject: Added libdisasm to the repository. This library is no longer under development so there is no reason not to keep it locally. Implemented a basic disassembler which can be used to scan bytecode for interesting conditions. This should be pretty easy to add to for things other than exploitability if there is a desire. This also adds several tests to the windows exploitability ranking code to take advantage of the disassembler for x86 code. BUG=None TEST=DisassemblerX86Test.* Review URL: http://breakpad.appspot.com/203001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@705 4c0a9323-5329-0410-9bdc-e9ce6186880e --- Makefile.am | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 3 deletions(-) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index 0703d788..ce2c18b0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,6 +49,7 @@ dist_doc_DATA = \ ## Libraries +noinst_LTLIBRARIES = src/third_party/libdisasm/libdisasm.la lib_LTLIBRARIES = src/libbreakpad.la if LINUX_HOST @@ -100,6 +101,8 @@ src_libbreakpad_la_SOURCES = \ src/processor/cfi_frame_info.h \ src/processor/contained_range_map-inl.h \ src/processor/contained_range_map.h \ + src/processor/disassembler_x86.h \ + src/processor/disassembler_x86.cc \ src/processor/exploitability.cc \ src/processor/exploitability_win.h \ src/processor/exploitability_win.cc \ @@ -143,6 +146,37 @@ src_libbreakpad_la_SOURCES = \ src/processor/udp_network.cc \ src/processor/udp_network.h +src_libbreakpad_la_LDFLAGS = -W1,-static + +src_libbreakpad_la_LIBADD = src/third_party/libdisasm/libdisasm.la + +src_third_party_libdisasm_libdisasm_la_SOURCES = \ + src/third_party/libdisasm/ia32_implicit.c \ + src/third_party/libdisasm/ia32_implicit.h \ + src/third_party/libdisasm/ia32_insn.c \ + src/third_party/libdisasm/ia32_insn.h \ + src/third_party/libdisasm/ia32_invariant.c \ + src/third_party/libdisasm/ia32_invariant.h \ + src/third_party/libdisasm/ia32_modrm.c \ + src/third_party/libdisasm/ia32_modrm.h \ + src/third_party/libdisasm/ia32_opcode_tables.c \ + src/third_party/libdisasm/ia32_opcode_tables.h \ + src/third_party/libdisasm/ia32_operand.c \ + src/third_party/libdisasm/ia32_operand.h \ + src/third_party/libdisasm/ia32_reg.c \ + src/third_party/libdisasm/ia32_reg.h \ + src/third_party/libdisasm/ia32_settings.c \ + src/third_party/libdisasm/ia32_settings.h \ + src/third_party/libdisasm/libdis.h \ + src/third_party/libdisasm/qword.h \ + src/third_party/libdisasm/x86_disasm.c \ + src/third_party/libdisasm/x86_format.c \ + src/third_party/libdisasm/x86_imm.c \ + src/third_party/libdisasm/x86_imm.h \ + src/third_party/libdisasm/x86_insn.c \ + src/third_party/libdisasm/x86_misc.c \ + src/third_party/libdisasm/x86_operand_list.c \ + src/third_party/libdisasm/x86_operand_list.h ## Programs bin_PROGRAMS = \ @@ -163,6 +197,8 @@ check_PROGRAMS = \ src/processor/basic_source_line_resolver_unittest \ src/processor/cfi_frame_info_unittest \ src/processor/contained_range_map_unittest \ + src/processor/disassembler_x86_unittest \ + src/processor/exploitability_unittest \ src/processor/minidump_processor_unittest \ src/processor/minidump_unittest \ src/processor/network_source_line_resolver_unittest \ @@ -296,6 +332,54 @@ src_processor_contained_range_map_unittest_LDADD = \ src/processor/logging.lo \ src/processor/pathname_stripper.lo +src_processor_exploitability_unittest_SOURCES = \ + src/processor/exploitability_unittest.cc \ + src/testing/gtest/src/gtest-all.cc \ + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc +src_processor_exploitability_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/testing/include \ + -I$(top_srcdir)/src/testing/gtest/include \ + -I$(top_srcdir)/src/testing/gtest \ + -I$(top_srcdir)/src/testing +src_processor_exploitability_unittest_LDADD = \ + src/processor/minidump_processor.lo \ + src/processor/process_state.lo \ + src/processor/disassembler_x86.lo \ + src/processor/exploitability.lo \ + src/processor/exploitability_win.lo \ + src/processor/basic_code_modules.lo \ + src/processor/basic_source_line_resolver.lo \ + src/processor/call_stack.lo \ + src/processor/cfi_frame_info.lo \ + src/processor/logging.lo \ + src/processor/minidump.lo \ + src/processor/pathname_stripper.lo \ + src/processor/stackwalker.lo \ + src/processor/stackwalker_amd64.lo \ + src/processor/stackwalker_arm.lo \ + src/processor/stackwalker_ppc.lo \ + src/processor/stackwalker_sparc.lo \ + src/processor/stackwalker_x86.lo \ + src/processor/tokenize.lo \ + src/third_party/libdisasm/libdisasm.la + +src_processor_disassembler_x86_unittest_SOURCES = \ + src/processor/disassembler_x86_unittest.cc \ + src/testing/gtest/src/gtest-all.cc \ + src/testing/gtest/src/gtest_main.cc \ + src/testing/src/gmock-all.cc +src_processor_disassembler_x86_unittest_CPPFLAGS = \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/testing/include \ + -I$(top_srcdir)/src/testing/gtest/include \ + -I$(top_srcdir)/src/testing/gtest \ + -I$(top_srcdir)/src/testing +src_processor_disassembler_x86_unittest_LDADD = \ + src/processor/disassembler_x86.lo \ + src/third_party/libdisasm/libdisasm.la + src_processor_minidump_processor_unittest_SOURCES = \ src/processor/minidump_processor_unittest.cc \ src/testing/gtest/src/gtest-all.cc \ @@ -311,6 +395,7 @@ src_processor_minidump_processor_unittest_LDADD = \ src/processor/basic_source_line_resolver.lo \ src/processor/call_stack.lo \ src/processor/cfi_frame_info.lo \ + src/processor/disassembler_x86.lo \ src/processor/exploitability.lo \ src/processor/exploitability_win.lo \ src/processor/logging.lo \ @@ -324,7 +409,8 @@ src_processor_minidump_processor_unittest_LDADD = \ src/processor/stackwalker_ppc.lo \ src/processor/stackwalker_sparc.lo \ src/processor/stackwalker_x86.lo \ - src/processor/tokenize.lo + src/processor/tokenize.lo \ + src/third_party/libdisasm/libdisasm.la src_processor_minidump_unittest_SOURCES = \ src/common/test_assembler.cc \ @@ -381,6 +467,7 @@ src_processor_network_source_line_resolver_server_unittest_LDADD = \ src/processor/binarystream.lo \ src/processor/call_stack.lo \ src/processor/cfi_frame_info.lo \ + src/processor/disassembler_x86.lo \ src/processor/exploitability.lo \ src/processor/exploitability_win.lo \ src/processor/logging.lo \ @@ -398,7 +485,8 @@ src_processor_network_source_line_resolver_server_unittest_LDADD = \ src/processor/stackwalker_sparc.lo \ src/processor/stackwalker_x86.lo \ src/processor/tokenize.lo \ - src/processor/udp_network.lo + src/processor/udp_network.lo \ + src/third_party/libdisasm/libdisasm.la src_processor_network_source_line_server_unittest_SOURCES = \ src/processor/network_source_line_server_unittest.cc \ @@ -455,6 +543,7 @@ src_processor_stackwalker_selftest_LDADD = \ src/processor/basic_code_modules.lo \ src/processor/basic_source_line_resolver.lo \ src/processor/call_stack.lo \ + src/processor/disassembler_x86.lo \ src/processor/exploitability.lo \ src/processor/exploitability_win.lo \ src/processor/logging.lo \ @@ -563,6 +652,7 @@ src_processor_minidump_stackwalk_LDADD = \ src/processor/binarystream.lo \ src/processor/call_stack.lo \ src/processor/cfi_frame_info.lo \ + src/processor/disassembler_x86.lo \ src/processor/exploitability.lo \ src/processor/exploitability_win.lo \ src/processor/logging.lo \ @@ -579,7 +669,8 @@ src_processor_minidump_stackwalk_LDADD = \ src/processor/stackwalker_sparc.lo \ src/processor/stackwalker_x86.lo \ src/processor/tokenize.lo \ - src/processor/udp_network.lo + src/processor/udp_network.lo \ + src/third_party/libdisasm/libdisasm.la src_processor_source_daemon_SOURCES = \ src/processor/source_daemon.cc -- cgit v1.2.1