Search in sources :

Example 11 with TypeInstance

use of com.google.security.zynamics.binnavi.disassembly.types.TypeInstance in project binnavi by google.

the class PostgreSQLTypeInstanceFunctionsTests method setTypeInstanceNameTest4.

@Test
public void setTypeInstanceNameTest4() throws CouldntSaveDataException, CouldntLoadDataException, LoadCancelledException {
    module.load();
    final TypeInstance typeInstance = module.getContent().getTypeInstanceContainer().getTypeInstances().get(0);
    final TypeInstanceAddress address = typeInstance.getAddress();
    provider.setTypeInstanceName(module.getConfiguration().getId(), typeInstance.getId(), " SUPER NEW NAME ");
    module.close();
    module.load();
    final TypeInstance loadedInstance = module.getContent().getTypeInstanceContainer().getTypeInstance(address);
    Assert.assertEquals(" SUPER NEW NAME ", loadedInstance.getName());
}
Also used : TypeInstanceAddress(com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceAddress) RawTypeInstance(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstance) TypeInstance(com.google.security.zynamics.binnavi.disassembly.types.TypeInstance) Test(org.junit.Test)

Example 12 with TypeInstance

use of com.google.security.zynamics.binnavi.disassembly.types.TypeInstance in project binnavi by google.

the class PostgreSQLTypeInstanceFunctionsTests method loadSingleTypeInstanceTest3.

@Test
public void loadSingleTypeInstanceTest3() throws CouldntLoadDataException, LoadCancelledException {
    module.load();
    final TypeInstance typeInstance = module.getContent().getTypeInstanceContainer().getTypeInstances().get(0);
    final RawTypeInstance rawTypeInstance = provider.loadTypeInstance(module, typeInstance.getId());
    Assert.assertEquals(typeInstance.getId(), rawTypeInstance.getId());
    Assert.assertEquals(typeInstance.getBaseType().getId(), rawTypeInstance.getTypeId());
}
Also used : RawTypeInstance(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstance) RawTypeInstance(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstance) TypeInstance(com.google.security.zynamics.binnavi.disassembly.types.TypeInstance) Test(org.junit.Test)

Example 13 with TypeInstance

use of com.google.security.zynamics.binnavi.disassembly.types.TypeInstance in project binnavi by google.

the class PostgreSQLTypeInstanceFunctionsTests method loadSingleTypeInstanceReference6.

@Test
public void loadSingleTypeInstanceReference6() throws CouldntLoadDataException, LoadCancelledException, CPartialLoadException {
    module.load();
    for (final INaviView view : module.getContent().getViewContainer().getViews().subList(10, 20)) {
        view.load();
        final TypeInstanceContainer container = module.getContent().getTypeInstanceContainer();
        for (final TypeInstance typeInstance : container.getTypeInstances()) {
            for (final TypeInstanceReference reference : container.getReferences(typeInstance)) {
                if (reference.getTreeNode().isPresent()) {
                    final RawTypeInstanceReference rawReference = provider.loadTypeInstanceReference(module, typeInstance.getId(), reference.getAddress().toBigInteger(), reference.getPosition(), reference.getTreeNode().get().getId());
                    Assert.assertEquals(reference.getAddress(), rawReference.getAddress());
                }
            }
        }
        view.close();
    }
}
Also used : INaviView(com.google.security.zynamics.binnavi.disassembly.views.INaviView) TypeInstanceReference(com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceReference) RawTypeInstanceReference(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstanceReference) RawTypeInstanceReference(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstanceReference) RawTypeInstance(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstance) TypeInstance(com.google.security.zynamics.binnavi.disassembly.types.TypeInstance) TypeInstanceContainer(com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceContainer) Test(org.junit.Test)

Example 14 with TypeInstance

use of com.google.security.zynamics.binnavi.disassembly.types.TypeInstance in project binnavi by google.

the class PostgreSQLTypeInstanceFunctionsTests method deleteTypeInstanceReferenceTest5.

@Test
public void deleteTypeInstanceReferenceTest5() throws CouldntDeleteException, CouldntLoadDataException, LoadCancelledException, CPartialLoadException, CouldntSaveDataException {
    module.load();
    final TypeInstance typeInstance = module.getContent().getTypeInstanceContainer().getTypeInstances().get(0);
    final TypeInstanceAddress address1 = typeInstance.getAddress();
    final INaviFunction function = module.getContent().getFunctionContainer().getFunction(new CAddress("1001929", 16));
    final INaviView view = module.getContent().getViewContainer().getView(function);
    view.load();
    final INaviInstruction instruction = view.getBasicBlocks().get(2).getInstructions().iterator().next();
    Assert.assertNotNull(typeInstance);
    provider.createTypeInstanceReference(typeInstance.getModule().getConfiguration().getId(), instruction.getAddress().toLong(), instruction.getOperandPosition(instruction.getOperands().get(1)), instruction.getOperands().get(0).getNodes().get(0).getId(), typeInstance.getId());
    view.close();
    module.close();
    module.load();
    view.load();
    final TypeInstance typeInstance2 = module.getContent().getTypeInstanceContainer().getTypeInstance(typeInstance.getAddress());
    Assert.assertEquals(address1, typeInstance2.getAddress());
    final List<TypeInstanceReference> references = module.getContent().getTypeInstanceContainer().getReferences(typeInstance2);
    Assert.assertTrue(!references.isEmpty());
    final TypeInstanceReference reference = Iterables.find(references, new Predicate<TypeInstanceReference>() {

        @Override
        public boolean apply(final TypeInstanceReference reference) {
            return reference.getAddress().equals(instruction.getAddress());
        }
    });
    Assert.assertNotNull(reference);
    provider.deleteTypeInstanceReference(module.getConfiguration().getId(), reference.getAddress().toBigInteger(), reference.getPosition(), reference.getTreeNode().get().getId());
}
Also used : TypeInstanceAddress(com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceAddress) INaviView(com.google.security.zynamics.binnavi.disassembly.views.INaviView) TypeInstanceReference(com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceReference) RawTypeInstanceReference(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstanceReference) RawTypeInstance(com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstance) TypeInstance(com.google.security.zynamics.binnavi.disassembly.types.TypeInstance) INaviFunction(com.google.security.zynamics.binnavi.disassembly.INaviFunction) CAddress(com.google.security.zynamics.zylib.disassembly.CAddress) INaviInstruction(com.google.security.zynamics.binnavi.disassembly.INaviInstruction) Test(org.junit.Test)

Aggregations

TypeInstance (com.google.security.zynamics.binnavi.disassembly.types.TypeInstance)14 Test (org.junit.Test)9 RawTypeInstance (com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstance)7 TypeInstanceReference (com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceReference)5 CAddress (com.google.security.zynamics.zylib.disassembly.CAddress)4 TypeInstanceCommentNotificationContainer (com.google.security.zynamics.binnavi.Database.PostgreSQL.Notifications.containers.TypeInstanceCommentNotificationContainer)3 INaviModule (com.google.security.zynamics.binnavi.disassembly.INaviModule)3 RawTypeInstanceReference (com.google.security.zynamics.binnavi.disassembly.types.RawTypeInstanceReference)3 TypeInstanceAddress (com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceAddress)3 INaviView (com.google.security.zynamics.binnavi.disassembly.views.INaviView)3 CommentNotification (com.google.security.zynamics.binnavi.Database.PostgreSQL.Notifications.interfaces.CommentNotification)2 INaviFunction (com.google.security.zynamics.binnavi.disassembly.INaviFunction)2 INaviInstruction (com.google.security.zynamics.binnavi.disassembly.INaviInstruction)2 MockModule (com.google.security.zynamics.binnavi.disassembly.Modules.MockModule)2 CommentOperation (com.google.security.zynamics.binnavi.disassembly.CommentManager.CommentOperation)1 BaseType (com.google.security.zynamics.binnavi.disassembly.types.BaseType)1 Section (com.google.security.zynamics.binnavi.disassembly.types.Section)1 TypeInstanceContainer (com.google.security.zynamics.binnavi.disassembly.types.TypeInstanceContainer)1 FormattedCharacterBuffer (com.google.security.zynamics.zylib.gui.CodeDisplay.FormattedCharacterBuffer)1 Color (java.awt.Color)1