mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-01-08 21:47:59 -05:00
GP-6234: Formally mark EmulatorHelper and friends @Deprecated.
This commit is contained in:
@@ -48,12 +48,14 @@ import ghidra.util.task.TaskMonitor;
|
||||
* ported to use the new {@link PcodeEmulator} directly. New use cases based on p-code emulation
|
||||
* should use the {@link PcodeEmulator} directly. Older use cases still being actively maintained
|
||||
* should begin work porting to {@link PcodeEmulator}. Old use cases without active maintenance may
|
||||
* try this wrapper, but may have to remain using {@link DefaultEmulator}. At a minimum, to update
|
||||
* such old use cases, {@code new Emulator(...)} must be replaced by
|
||||
* try this wrapper, but they will no longer compile once this adaptor is removed. At a minimum, to
|
||||
* update such old use cases, {@code new Emulator(...)} must be replaced by
|
||||
* {@code new DefaultEmulator(...)}.
|
||||
*/
|
||||
@Transitional
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class AdaptedEmulator implements Emulator {
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
class AdaptedPcodeEmulator extends PcodeEmulator {
|
||||
private final MemoryLoadImage loadImage;
|
||||
private final MemoryFaultHandler faultHandler;
|
||||
@@ -91,6 +93,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
@Transitional
|
||||
public class AdaptedPcodeUseropLibrary extends AnnotatedPcodeUseropLibrary<byte[]> {
|
||||
@PcodeUserop
|
||||
@@ -106,6 +109,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
class AdaptedPcodeThread extends BytesPcodeThread {
|
||||
Address lastExecuteAddress;
|
||||
|
||||
@@ -145,6 +149,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
class AdaptedStateCallbacks implements PcodeStateCallbacks {
|
||||
private final MemoryLoadImage loadImage;
|
||||
|
||||
@@ -184,6 +189,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
class AdaptedBytesPcodeExecutorState extends BytesPcodeExecutorState {
|
||||
public AdaptedBytesPcodeExecutorState(Language language, MemoryFaultHandler faultHandler,
|
||||
MemoryLoadImage loadImage) {
|
||||
@@ -228,6 +234,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
static class AdaptedBytesPcodeExecutorStatePiece
|
||||
extends AbstractBytesPcodeExecutorStatePiece<AdaptedBytesPcodeExecutorStateSpace> {
|
||||
private final MemoryFaultHandler faultHandler;
|
||||
@@ -244,6 +251,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
static class AdaptedBytesPcodeExecutorStateSpace extends BytesPcodeExecutorStateSpace {
|
||||
private final MemoryFaultHandler faultHandler;
|
||||
|
||||
@@ -270,6 +278,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
class AdaptedBreakTableCallback extends BreakTableCallBack {
|
||||
public AdaptedBreakTableCallback() {
|
||||
super((SleighLanguage) language);
|
||||
@@ -299,6 +308,7 @@ public class AdaptedEmulator implements Emulator {
|
||||
* track what filters are installed. The {@link AdaptedBytesPcodeExecutorState} will invoke the
|
||||
* filter chain and then perform the read or write itself.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
static class AdaptedFilteredMemoryState extends FilteredMemoryState {
|
||||
private MemoryAccessFilter headFilter;
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -50,6 +50,7 @@ import ghidra.program.model.address.AddressSpace;
|
||||
* so long as {@link T} can be made concrete.
|
||||
*/
|
||||
@Transitional
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class AdaptedMemoryState<T> extends AbstractMemoryState {
|
||||
private final PcodeExecutorState<T> state;
|
||||
private final PcodeArithmetic<T> arithmetic;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -45,7 +45,10 @@ import ghidra.util.task.TaskMonitor;
|
||||
* to {@code new DefaultEmulator(...)}. It is highly recommended to port to the newer
|
||||
* {@link PcodeEmulator}. You may find the {@link AdaptedEmulator} useful during the transition, but
|
||||
* that class is only transitional.
|
||||
*
|
||||
* @deprecated Please use {@link PcodeEmulator} instead.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class DefaultEmulator implements Emulator {
|
||||
|
||||
private final MemoryFaultHandler faultHandler;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -27,10 +27,10 @@ import ghidra.util.task.TaskMonitor;
|
||||
/**
|
||||
* The emulator interface
|
||||
*
|
||||
* <p>
|
||||
* This interface may soon be deprecated. It was extracted from what has now been renamed
|
||||
* {@link DefaultEmulator}. Please consider using {@link PcodeEmulator} instead.
|
||||
* @deprecated This interface was extracted from what has now been renamed {@link DefaultEmulator}
|
||||
* and is also deprecated. Please use {@link PcodeEmulator} instead.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface Emulator {
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -20,6 +20,7 @@ import ghidra.pcode.memstate.MemoryFaultHandler;
|
||||
import ghidra.program.model.lang.Language;
|
||||
import ghidra.program.model.lang.Register;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface EmulatorConfiguration {
|
||||
|
||||
Language getLanguage();
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -49,7 +49,9 @@ import ghidra.util.task.TaskMonitor;
|
||||
*
|
||||
* @see PcodeEmulator
|
||||
* @see Emulator
|
||||
* @deprecated Please use {@link PcodeEmulator} instead.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class EmulatorHelper implements MemoryFaultHandler, EmulatorConfiguration {
|
||||
|
||||
private final Program program;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +19,7 @@ import ghidra.pcode.memstate.DefaultMemoryState;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
import ghidra.program.model.lang.Language;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
class FilteredMemoryState extends DefaultMemoryState {
|
||||
|
||||
private MemoryAccessFilter filter;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package ghidra.app.emulator;
|
||||
|
||||
import ghidra.pcode.emu.PcodeEmulationCallbacks;
|
||||
import ghidra.pcode.emu.PcodeEmulator;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
|
||||
/**
|
||||
@@ -24,7 +26,11 @@ import ghidra.program.model.address.AddressSpace;
|
||||
* Several of these filters may be chained together, each being invoked in the reverse of the order
|
||||
* added. In this way, the first added gets the "final say," but it also is farthest from the
|
||||
* original request.
|
||||
*
|
||||
* @deprecated Please use {@link PcodeEmulator} instead. For similar callbacks, see
|
||||
* {@link PcodeEmulationCallbacks}
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public abstract class MemoryAccessFilter {
|
||||
|
||||
private MemoryAccessFilter prevFilter;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -21,6 +21,7 @@ import ghidra.pcode.memstate.MemoryPage;
|
||||
import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.address.AddressSetView;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class CompositeLoadImage implements MemoryLoadImage {
|
||||
|
||||
private List<MemoryLoadImage> providers = new ArrayList<MemoryLoadImage>();
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -18,6 +18,7 @@ package ghidra.app.emulator.memory;
|
||||
import ghidra.app.emulator.state.RegisterState;
|
||||
import ghidra.program.model.address.AddressSetView;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface EmulatorLoadData {
|
||||
|
||||
public MemoryLoadImage getMemoryLoadImage();
|
||||
|
||||
@@ -15,23 +15,30 @@
|
||||
*/
|
||||
package ghidra.app.emulator.memory;
|
||||
|
||||
import ghidra.pcode.emu.PcodeEmulationCallbacks;
|
||||
import ghidra.pcode.emu.PcodeEmulator;
|
||||
import ghidra.pcode.memstate.*;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
|
||||
/**
|
||||
* A kind of MemoryBank which retrieves its data from an underlying LoadImage
|
||||
* <p>
|
||||
* Any bytes requested on the bank which lie in the LoadImage are retrieved from
|
||||
* the LoadImage. Other addresses in the space are filled in with zero.
|
||||
* This bank cannot be written to.
|
||||
* Any bytes requested on the bank which lie in the LoadImage are retrieved from the LoadImage.
|
||||
* Other addresses in the space are filled in with zero. This bank cannot be written to.
|
||||
*
|
||||
* @deprecated Please use {@link PcodeEmulator} instead. We generally expect the image to be
|
||||
* manually loaded into the emulator, though you can use {@link PcodeEmulationCallbacks}
|
||||
* to load an image lazily.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class MemoryImage extends MemoryBank {
|
||||
|
||||
private MemoryLoadImage loader; // The underlying LoadImage
|
||||
|
||||
/**
|
||||
* A MemoryImage needs everything a basic memory bank needs and is needs to know
|
||||
* the underlying LoadImage object to forward read requests to.
|
||||
* A MemoryImage needs everything a basic memory bank needs and is needs to know the underlying
|
||||
* LoadImage object to forward read requests to.
|
||||
*
|
||||
* @param spc is the address space associated with the memory bank
|
||||
* @param isBigEndian
|
||||
* @param ps is the number of bytes in a page (must be power of 2)
|
||||
@@ -45,9 +52,9 @@ public class MemoryImage extends MemoryBank {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve an aligned page from the bank. First an attempt is made to retrieve the
|
||||
* page from the LoadImage, which may do its own zero filling. If the attempt fails, the
|
||||
* page is entirely filled in with zeros.
|
||||
* Retrieve an aligned page from the bank. First an attempt is made to retrieve the page from
|
||||
* the LoadImage, which may do its own zero filling. If the attempt fails, the page is entirely
|
||||
* filled in with zeros.
|
||||
*/
|
||||
@Override
|
||||
public MemoryPage getPage(long addr) {
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -18,6 +18,7 @@ package ghidra.app.emulator.memory;
|
||||
import ghidra.pcode.loadimage.LoadImage;
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface MemoryLoadImage extends LoadImage {
|
||||
|
||||
public void writeBack(byte[] bytes, int size, Address addr, int offset);
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -27,6 +27,7 @@ import ghidra.util.Msg;
|
||||
import ghidra.util.exception.AssertException;
|
||||
|
||||
// Derived from ProgramMappedMemory
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class ProgramLoadImage {
|
||||
|
||||
private Program program;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -17,6 +17,7 @@ package ghidra.app.emulator.memory;
|
||||
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class ProgramMappedLoadImage implements MemoryLoadImage {
|
||||
|
||||
private ProgramMappedMemory pmm;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -26,6 +26,7 @@ import ghidra.program.model.mem.*;
|
||||
import ghidra.util.Msg;
|
||||
import ghidra.util.exception.AssertException;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class ProgramMappedMemory {
|
||||
|
||||
private Program program;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -21,6 +21,7 @@ import ghidra.util.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class DumpMiscState implements RegisterState {
|
||||
|
||||
private Map<String, Pair<Boolean, byte[]>> context =
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +19,7 @@ import ghidra.pcode.memstate.MemoryBank;
|
||||
import ghidra.pcode.memstate.MemoryPageOverlay;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class FilteredMemoryPageOverlay extends MemoryPageOverlay {
|
||||
|
||||
private boolean writeBack;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -20,6 +20,7 @@ import ghidra.pcode.memstate.MemoryPageBank;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
import ghidra.program.model.lang.Language;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class FilteredRegisterBank extends MemoryPageBank {
|
||||
|
||||
//private final RegisterState regState;
|
||||
|
||||
@@ -18,6 +18,7 @@ package ghidra.app.emulator.state;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface RegisterState {
|
||||
|
||||
public Set<String> getKeys();
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package ghidra.pcode.emulate;
|
||||
|
||||
import ghidra.pcode.emu.PcodeMachine;
|
||||
import ghidra.pcode.exec.AnnotatedPcodeUseropLibrary;
|
||||
import ghidra.pcode.pcoderaw.PcodeOpRaw;
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@@ -31,7 +33,11 @@ import ghidra.program.model.address.Address;
|
||||
*
|
||||
* depending on whether the breakpoint is tailored for a particular pcode op or for
|
||||
* a machine address.
|
||||
*
|
||||
* @deprecated Use {@link PcodeMachine#inject(Address, String)}. By injecting a userop invocation,
|
||||
* you can receive a callback in a {@link AnnotatedPcodeUseropLibrary}.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class BreakCallBack {
|
||||
protected Emulate emulate; // The emulator currently associated with this breakpoint
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import ghidra.program.model.address.Address;
|
||||
* depending on the type of breakpoint they currently want to invoke
|
||||
*/
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface BreakTable {
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,6 +33,7 @@ import ghidra.program.model.address.Address;
|
||||
* Breakpoints are stored in map containers, and the core BreakTable methods
|
||||
* are implemented to search in these containers
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class BreakTableCallBack implements BreakTable {
|
||||
|
||||
public static final String DEFAULT_NAME = "*";
|
||||
|
||||
@@ -42,6 +42,7 @@ import ghidra.util.task.TaskMonitor;
|
||||
* as the execution address is set, either explicitly, or via branches and fallthrus. There
|
||||
* are additional methods for inspecting the pcode ops in the current instruction as a sequence.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class Emulate {
|
||||
|
||||
private MemoryState memstate; // the memory state of the emulator.
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -22,6 +22,7 @@ import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.lang.*;
|
||||
import ghidra.program.util.ProgramContextImpl;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class EmulateDisassemblerContext implements DisassemblerContext {
|
||||
|
||||
private final Language language;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -16,6 +15,7 @@
|
||||
*/
|
||||
package ghidra.pcode.emulate;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public enum EmulateExecutionState {
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,6 +19,8 @@ import java.util.*;
|
||||
|
||||
import ghidra.pcode.emulate.callother.OpBehaviorOther;
|
||||
import ghidra.pcode.error.LowlevelError;
|
||||
import ghidra.pcode.exec.AnnotatedPcodeUseropLibrary;
|
||||
import ghidra.pcode.exec.PcodeUseropLibrary;
|
||||
import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.lang.Language;
|
||||
import ghidra.program.model.lang.RegisterValue;
|
||||
@@ -30,7 +32,10 @@ import ghidra.program.model.pcode.Varnode;
|
||||
* emulation with adjusting the current execution state, providing support for custom pcodeop's
|
||||
* (i.e., CALLOTHER). The implementation of this interface must provide a public constructor which
|
||||
* takes a single Emulate argument.
|
||||
*
|
||||
* @deprecated Use {@link PcodeUseropLibrary} or {@link AnnotatedPcodeUseropLibrary} instead
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public abstract class EmulateInstructionStateModifier {
|
||||
|
||||
protected final Emulate emu;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -26,6 +26,7 @@ import ghidra.program.model.mem.*;
|
||||
* which wraps an emulator MemoryState. This implementation wraps all specified
|
||||
* memory offsets within the associated address space.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class EmulateMemoryStateBuffer implements MemBuffer {
|
||||
|
||||
private final MemoryState memState;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +18,7 @@ package ghidra.pcode.emulate;
|
||||
import ghidra.pcode.error.LowlevelError;
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class InstructionDecodeException extends LowlevelError {
|
||||
|
||||
private Address pc;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +18,7 @@ package ghidra.pcode.emulate;
|
||||
import ghidra.pcode.error.LowlevelError;
|
||||
import ghidra.pcode.pcoderaw.PcodeOpRaw;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class UnimplementedCallOtherException extends LowlevelError {
|
||||
|
||||
private String opName;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +18,7 @@ package ghidra.pcode.emulate;
|
||||
import ghidra.pcode.error.LowlevelError;
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class UnimplementedInstructionException extends LowlevelError {
|
||||
|
||||
private Address addr;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +18,7 @@ package ghidra.pcode.emulate.callother;
|
||||
import ghidra.pcode.emulate.Emulate;
|
||||
import ghidra.program.model.pcode.Varnode;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface OpBehaviorOther {
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -19,6 +18,7 @@ package ghidra.pcode.emulate.callother;
|
||||
import ghidra.pcode.emulate.Emulate;
|
||||
import ghidra.program.model.pcode.Varnode;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class OpBehaviorOtherNOP implements OpBehaviorOther {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,6 +19,7 @@ import ghidra.program.model.address.Address;
|
||||
|
||||
// API for accessing a binary load image
|
||||
// using 1 of possibly many different methods behind the scenes
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface LoadImage {
|
||||
|
||||
// TODO this doesn't appear to be used.
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -18,6 +17,7 @@ package ghidra.pcode.loadimage;
|
||||
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class LoadImageFunc {
|
||||
public Address address; // Start of function
|
||||
public String name; // Name of function
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -24,6 +24,7 @@ import ghidra.program.model.lang.Language;
|
||||
import ghidra.program.model.lang.Register;
|
||||
import ghidra.program.model.pcode.Varnode;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public abstract class AbstractMemoryState implements MemoryState {
|
||||
final Language language;
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -28,6 +28,7 @@ import ghidra.program.model.lang.Language;
|
||||
* (AddressSpace,offset,size). This class allows getting and setting of all state information of
|
||||
* this form.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class DefaultMemoryState extends AbstractMemoryState {
|
||||
|
||||
VectorSTL<MemoryBank> memspace = new VectorSTL<MemoryBank>();
|
||||
|
||||
@@ -17,6 +17,7 @@ package ghidra.pcode.memstate;
|
||||
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public abstract class MemoryBank {
|
||||
|
||||
private final int pagesize; // Number of bytes in an aligned page access
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -17,6 +17,7 @@ package ghidra.pcode.memstate;
|
||||
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface MemoryFaultHandler {
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -24,6 +24,7 @@ import java.util.Arrays;
|
||||
* mask indicates that all data within the page is initialized. A one-bit
|
||||
* within the mask indicates that the corresponding data byte is initialized.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class MemoryPage {
|
||||
|
||||
public final byte[] data;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -18,6 +18,7 @@ package ghidra.pcode.memstate;
|
||||
import generic.stl.*;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class MemoryPageBank extends MemoryBank {
|
||||
|
||||
protected MapSTL<Long, MemoryPage> page = new ComparableMapSTL<>();
|
||||
|
||||
@@ -27,6 +27,7 @@ import ghidra.program.model.address.AddressSpace;
|
||||
* of this page implementation. The underlying memory bank can be a null pointer
|
||||
* in which case, this memory bank behaves as if it were initially filled with zeros.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class MemoryPageOverlay extends MemoryPageBank {
|
||||
|
||||
protected MemoryBank underlie; // underlying memory object
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -22,6 +22,7 @@ import ghidra.program.model.address.AddressSpace;
|
||||
import ghidra.program.model.lang.Register;
|
||||
import ghidra.program.model.pcode.Varnode;
|
||||
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public interface MemoryState {
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -24,6 +24,7 @@ import ghidra.program.model.address.AddressSpace;
|
||||
* An subclass of {@link MemoryBank} intended for modeling the "unique" memory
|
||||
* space. The space is byte-addressable and paging is not supported.
|
||||
*/
|
||||
@Deprecated(since = "12.1", forRemoval = true)
|
||||
public class UniqueMemoryBank extends MemoryBank {
|
||||
|
||||
/**A map from {@link Long} offsets to byte values would require many lookups.
|
||||
|
||||
Reference in New Issue
Block a user