mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-25 16:54:43 +01:00
Added method to exploitability class which checks if a given address contains all ascii characters.
BUG=NONE TEST=ExploitabilityTest.TestWindowsEngine Review URL: http://breakpad.appspot.com/207001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@706 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
2b4274afc4
commit
8b2e6865e5
4 changed files with 99 additions and 51 deletions
|
|
@ -127,87 +127,115 @@ TEST(ExploitabilityTest, TestWindowsEngine) {
|
|||
ProcessState state;
|
||||
|
||||
string minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_block_write.dmp";
|
||||
"/src/processor/testdata/ascii_read_av.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_clobber_write.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_conditional.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_then_jmp.dmp";
|
||||
"/src/processor/testdata/ascii_read_av_block_write.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_xchg_write.dmp";
|
||||
"/src/processor/testdata/ascii_read_av_clobber_write.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_write_av.dmp";
|
||||
"/src/processor/testdata/ascii_read_av_conditional.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_then_jmp.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_read_av_xchg_write.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_write_av.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_write_av_arg_to_call.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/null_read_av.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/null_write_av.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/stack_exhaustion.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/exec_av_on_stack.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/write_av_non_null.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABLITY_MEDIUM,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/ascii_write_av_arg_to_call.dmp";
|
||||
"/src/processor/testdata/read_av_non_null.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABLITY_MEDIUM,
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/null_read_av.dmp";
|
||||
"/src/processor/testdata/read_av_clobber_write.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/null_write_av.dmp";
|
||||
"/src/processor/testdata/read_av_conditional.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/stack_exhaustion.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_NONE,
|
||||
state.exploitability());
|
||||
|
||||
minidump_file = string(getenv("srcdir") ? getenv("srcdir") : ".") +
|
||||
"/src/processor/testdata/exec_av_on_stack.dmp";
|
||||
ASSERT_EQ(processor.Process(minidump_file, &state),
|
||||
google_breakpad::PROCESS_OK);
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
|
||||
ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
|
||||
state.exploitability());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue