adplus-dvertising
frame-decoration

Question

How does the program use the exception handler to detect whether SoftICE is running?

a.

The program installs an exception handler and invokes int 1.

b.

The program checks the interrupt descriptor table for SoftICE's handler for int 1.

c.

The program opens the SoftICE kernel device and checks whether it is present.

d.

The program checks whether the file "\.SIWVID" can be opened successfully.

Posted under Reverse Engineering

Answer: (a).The program installs an exception handler and invokes int 1. Explanation:The program installs an exception handler and invokes int 1. If the exception code is anything but the conventional access violation exception, you can assume that SoftICE is running.

Engage with the Community - Add Your Comment

Confused About the Answer? Ask for Details Here.

Know the Explanation? Add it Here.

Q. How does the program use the exception handler to detect whether SoftICE is running?

Similar Questions

Discover Related MCQs

Q. What is the advantage of using the Single-Step Interrupt trick to detect SoftICE?

Q. What is the trap flag approach for detecting debuggers?

Q. What is the advantage of the trap flag approach?

Q. What is a limitation of the trap flag approach?

Q. What is the advantage of using code checksums as an antidebugging technique?

Q. How does the code checksum technique work as an antidebugging measure?

Q. What is the downside of using code checksums as an antidebugging technique?

Q. How can the use of code checksums be optimized to minimize the impact on program execution time?

Q. What is a potential consequence of modifying the program code to make it more difficult for reversers to understand the program flow?

Q. What is the strategy of confusing disassemblers as a means of preventing or inhibiting reversers?

Q. What is the difference between linear sweep and recursive traversal in disassembly?

Q. Which type of disassembler is more reliable and tolerant of antidisassembly tricks?

Q. Which of the following is NOT a potential effect of confusing disassemblers?

Q. What is an opaque predicate?

Q. What is the difference between linear sweep and recursive traversal disassemblers?

Q. Which disassemblers can properly disassemble code with opaque predicates?

Q. What is the purpose of the pseudorandom values in the macro?

Q. Why is the LINE macro used in the macro?

Q. What is the potential downside of using too many copies of this macro in a program?

Q. Are these techniques effective at deterring experienced and determined reversers from reversing or cracking an application?