首页 文章
  • 0 votes
     answers
     views

    在链接上添加可执行文件部分

    我目前正在使用Visual Studio 2017,并尝试使我的应用程序更具防篡改性 . 现在我想要保护的关键代码函数将在运行时被解密,为此我试图将它们添加到文件中的自定义部分,这将被称为.foobar作为示例 . 我正在使用#pragma指令添加该部分,稍后指定应该链接哪个函数,但是当我分析PE文件时,没有.foobar部分 . 我正在尝试添加该函数的代码如下: #pragma section(...
  • 90 votes
     answers
     views

    如何在内存中找到代表扫雷的矿山布局的数据结构?

    我'm trying to learn about reverse engineering, using Minesweeper as a sample application. I'在一个简单的WinDbg命令中发现了这个MSDN article,它显示了所有的地雷,但是它已经很老了,没有详细解释,真的没有't what I'我正在寻找 . 我有IDA Pro disassembler和WinD...
  • 2 votes
     answers
     views

    如何将EXE中的文件偏移映射到其PE部分

    我打开了一个用ImageHlp.dll编写的程序来玩它一点点,我注意到文件中似乎有很大的空白 . 据我所知,对于每个PE部分,section Headers 在文件中将其偏移量设置为 PhysicalAddress ,其大小为 SizeOfRawData ,因此从 PhysicalAddress 到 PhysicalAddress + SizeOfRawData 的所有内容都应该是该部分 . 但是...
  • 4 votes
     answers
     views

    查找原始入口点

    我希望能够通过查看PE头来找出出现在入口点的代码的位置 . 例如,这段代码是我程序的起始代码(401000h) 00401000 >/$ 58 POP EAX ; kernel32.76E93677 00401001 |. 2D 77360100 SUB EAX,13677 00401006 ...
  • 0 votes
     answers
     views

    如何在PE32文件中找到Import Section的偏移量?

    我一直试图弄清楚这几个小时,但我似乎无法得到它 . 我一直在尝试在Microsoft文档中查找信息,但是我被大量信息所淹没 . 我的问题是:如何在PE32文件中找到 Import Section 的偏移量?我在磁盘上没有't mean when the the file is loaded into memory, I mean when it' . 我应该看看 Object Table ?另一个...
  • 0 votes
     answers
     views

    如何为新的节头标定义PointerToRawData?

    我正在尝试在PE中添加新的节头,但我不知道如何计算新节的PointerToRawData . 据我所知,它应该是原始数据的大小,最后一节的PointerToRawData,但我添加到PE中的部分的SizeOfRawData等于0,虚拟大小为1000 . 有人可以提供一些帮助吗? 提前致谢,
  • 1 votes
     answers
     views

    如何在IDA中显示PE头

    如何让IDA像图片一样显示PE头? 请注意标记区域,转换时间戳,RVA具有外部参照链接,原始字节与字段对齐 . 当我尝试添加IMAGE_NT_HEADERS结构,并将PE头设置为结构时,我得到: 我不想使用任何插件,只有IDA . 在第一张图片中,ida自动识别UPX文件的实时调试中的文件头 .
  • 1 votes
     answers
     views

    如何在Delphi中获取包含可移植可执行文件中代码的部分的sha-256哈希?

    我想在Delphi中的可移植可执行文件中获取包含代码(.text,CODE)的部分的sha-256哈希 . 到目前为止,我已经尝试获取AddressOfEntryPoint指向的部分的起始和结束地址,但是如果我多次加载相同的文件,我会得到不同的起始和结束地址 . 谁能帮帮我吗? 这是代码: procedure TForm1.Button1Click(Sender: TObject); var x:...
  • 1 votes
     answers
     views

    添加了pe可执行部分损坏的.text部分

    我试图在pe可执行文件中添加一个部分,当我添加该部分时,它正在破坏.text部分的前40个字节的内存 . 我想知道是否有人知道为什么我的功能会破坏.text部分? 当我签入CFF资源管理器时,所有偏移都是正确的,包括新的部分 . 这已经反复发生在不同的文件中 . 以下是创建添加部分的代码: int addSection(char* sectionName, DWORD size){ int pos...
  • 0 votes
     answers
     views

    Win32 PE中的某个部分是否包含可执行代码,初始化数据和单元化数据的组合?

    Win32 PE中的某个部分是否包含可执行代码,初始化数据和单元化数据的组合? 部分是否可以包含代码和(未)初始化数据的任意组合作为部分数据,或者该部分是否只包含一种类型的数据? 这是节 Headers 的 Characteristics 字段,它有确定其属性的标志,但我不确定是否可以混合起来? 下面我列出了官方PE文件中的标志: IMAGE_SCN_CNT_CODE 0x00000020该...
  • -1 votes
     answers
     views

    代码被视为可移植可执行文件格式的初始化数据,以及初始化和单元化数据之间究竟有什么区别?

    代码被视为可移植可执行(PE)格式的初始化数据,以及初始化和单一化数据之间究竟有什么区别? 根据以前的经验,我将初始化数据视为字符串或整数,但可执行代码是否也被称为PE上下文中的初始化数据? 此外,初始化和单一化数据之间究竟有什么区别? 文件说: 节数据节的初始化数据由简单的字节块组成 . 但是,对于包含全零的节,不需要包含节数据 . ...
  • 3 votes
     answers
     views

    可执行部分 Headers - 含义和用法?

    通过在Windows中使用7zip打开许多可执行文件( .exe. , .msi ),我注意到许多不同的文件类型是常见的 . 那些包括.text,.data,.bss,.rdata,.pdata等 . 我发现它们的意思 . 以下是其中一些: .text :代码部分,包含程序的指令 - 只读 - . .data :通常用于具有一些初始化非零内容的可写数据 . 因此,数据部分包含可在应用程序...
  • 0 votes
     answers
     views

    调整可执行入口点

    我试图改变可移植可执行程序(PE)的入口点,以便它将执行我的代码 . 这就是我所做的 . 扩大了.text部分,即其VirtualSize等于SizeOfRawData 将我的shellcode插入文件偏移量1340(RVA 3140) CC int 3 (附加调试器) 将入口点设置为3140 问题:可执行文件不会调用我的代码 . 相反,它会产生一个垫片错误 . Hexdump c...
  • 0 votes
     answers
     views

    我有两个“.data”部分的PE文件部分名称的字节不同 . 这个文件的类型是什么?

    我有两个PE文件具有相同的部分命名为“.data” . 当我们在hex dump中看到时,这些名称包含不同的字节 . 这部分内容为00字节 . 这个文件类型是什么?
  • 1 votes
     answers
     views

    对象文件/可执行文件:段和段之间有什么区别?

    我很困惑于在引用目标文件/可执行文件时“segment”和“section”之间是否存在差异 . 根据https://en.wikipedia.org/wiki/Object_file: 大多数目标文件格式都是单独的数据部分,每个部分都包含某种类型的数据 . 然而,该文章后来继续谈论 segments (例如代码段,数据段等) . 此外,PE文件格式(Windows中的.exe / .dll ...
  • 131 votes
     answers
     views

    delete []如何知道它是一个数组?

    好吧,我想我们都同意以下代码所发生的事情是未定义的,具体取决于传递的内容, void deleteForMe(int* pointer) { delete[] pointer; } 指针可能是各种不同的东西,因此对它执行无条件的 delete[] 是未定义的 . 但是,让我们假设我们确实传递了一个数组指针, int main() { int* arr = new int[5]...
  • 26 votes
     answers
     views

    Windows下的确定性构建

    最终目标是在完全相同的环境中比较从完全相同的源构建的2个二进制文件,并且能够告诉它们确实在功能上是等效的 . 一个应用程序就是将QA时间集中在发布之间实际发生变化的事情上,以及一般的变更监控 . MSVC与PE格式串联自然使得这很难做到 . 到目前为止,我发现并中和了这些事情: PE时间戳和校验和 数字签名目录条目 调试器部分时间戳 PDB签名,年龄和文件路径 资源时间戳 ...
  • 3 votes
     answers
     views

    / TSAWARE链接器标志对PE可执行文件做了什么?

    将/ TSAWARE链接器标志添加到我的一个项目(Visual Studio 6)后,我很惊讶在PE文件(.idata)中找到了一个新部分 . 如果我没有设置标志,则导入将合并到.rdata中 . 为了说明“问题”,我们从一个简单的控制台程序开始: #include <stdio.h> int main() { printf("hello world\n"...
  • 52 votes
     answers
     views

    C 11:用std :: shared_ptr()替换所有非拥有的原始指针?

    随着 std::unique_ptr 的出现,瑕疵 std::auto_ptr 终于可以得到休息 . 所以在过去的几天里,我一直在改变我的代码以使用智能指针并从我的代码中消除所有 delete . 虽然valgrind说我的代码是内存清晰的,但智能指针的语义丰富性将使代码更清晰,更易于理解 . 在大多数代码中,翻译很简单:使用 std::unique_ptr 代替拥有对象持有的原始指针,抛出 d...
  • 1 votes
     answers
     views

    链接器的内存部分标志实际影响了什么?

    在链接描述文件中,在定义内存部分时,可以指定某些标志: MEMORY { rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x100000 ram (!rx) : ORIGIN = 0x20000000, LENGTH = 0x1C000 } 查看LD的一些在线文档,它指出: 一个可选的属性列表,允许与AT&T链接器兼容但除了检查属性列表是否有...
  • 19 votes
     answers
     views

    如何手动创建可执行的.exe PE文件?

    在解释词法分析器和解析器之后,有关如何创建编译器的所有文本都会停止 . 他们没有解释如何创建机器代码 . 我想了解端到端流程 . 目前我的理解是,Windows exe文件格式称为Portable Executable . 我读到了它的 Headers ,我还没有找到一个可以轻松解释这个问题的资源 . 我的下一个问题是,我没有看到任何解释机器代码如何存储在文件中的资源 . 是否像 .text 部分...
  • 0 votes
     answers
     views

    关于Windows NT / 10上的可移植可执行文件分配的堆的方式和位置?

    我目前正在研究可移植可执行文件格式,并且've learned about the 9 common sections such as .code, .data, .rdata, .debug, and etc... However, one piece of information which seems to be obscure and absent from the papers I'已读...
  • 0 votes
     answers
     views

    处理来自不同部分的数据

    我正在修改可执行文件,并希望将数据添加到 .rdata 部分 . 我在调试器中工作时可以正确读取它,但在运行独立的补丁可执行文件时却无法读取 . 如果我理解正确,问题是可执行文件可以加载到不同的基址中,这意味着我的 MOV 指令中的绝对地址实际上并不指向我的数据 . 如何让加载程序正确翻译附加说明中的地址?或者,如果我知道RVA,是否可以在运行时计算VA?
  • 0 votes
     answers
     views

    Keras上的多对一LSTM,softmax尺寸误差

    我正在尝试使用LSTM训练一个简单的多对一RNN分类器 . 我的时间步长是100个数据点长7个功能,我总共有192382个样本 . 这是我的模型: model = Sequential() model.add(LSTM(50,input_shape = (100,7),name = 'LSTM',return_sequences=False)) model.add(Dropout(0.2)) mo...
  • 1 votes
     answers
     views

    尝试在Keras中创建BLSTM网络时出现TypeError

    我'm a bit new to Keras and deep learning. I'目前正在尝试复制这个paper但是当我编译第二个模型(使用LSTM)时,我收到以下错误: "TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'" 模型的描述是这样的: 输入(长度 T 是设备特定的窗口大小...
  • 1 votes
     answers
     views

    使用带有theano后端的keras时,适合函数中的TypeError

    我的theano版本是 1.0.1+unknown . 我的keras版本是 2.1.3 我正在keras中实现堆叠的LSTM自动编码器,这是我的代码: timesteps = x_train.shape[1] input_dim = 1 inputs = Input(batch_shape=(1,timesteps, input_dim)) encoded = LSTM(7,return_se...
  • 0 votes
     answers
     views

    CoreML输出类型

    是否可以更改CoreML模型的输出类型?我的模型将图像作为输入和图像作为输出,但当我将我的Keras模型转换为ml模型时,我得到: coreml_model = coremltools.converters.keras.convert('/Users/user/Desktop/model.h5',input_names='input_img',image_input_names='input_im...
  • 2 votes
     answers
     views

    在Keras中构建具有嵌入层的LSTM网络

    我想创建一个由嵌入层组成的Keras模型,然后是两个带有dropout 0.5的LSTM,最后是一个带有softmax激活的密集层 . 第一个LSTM应该将顺序输出传播到第二层,而在第二个层中,我只对处理整个序列后获取LSTM的隐藏状态感兴趣 . 我尝试了以下方法: sentence_indices = Input(input_shape, dtype = 'int32') embedding_...
  • 2 votes
     answers
     views

    在Keras上使用解码器输入seq2seq模型连接注意层

    我正在尝试使用keras库实现注意序列2序列模型 . 该模型的框图如下 NNmodel 该模型将输入序列嵌入到3D张量中 . 然后双向lstm创建编码层 . 接下来,编码序列被发送到自定义注意层,该层返回具有每个隐藏节点的注意权重的2d张量 . 解码器输入作为一个热矢量注入模型 . 现在在解码器(另一个bi-lstm)中,解码器输入和注意权重都作为输入传递 . 解码器的输出被发送到具有softma...
  • 1 votes
     answers
     views

    CoreML - 如何将InceptionV3的图像预处理成MultiArray <Double,3>?

    我使用Keras(2.0.4)和Tensorflow(1.1.0)对Inception_v3进行了重新训练和微调 . 当我使用coremltools将Keras模型转换为MLmodel时,我得到一个需要输入MultiArray的模型 . 如果我明白它要求[高度,宽度,RGB] =(299,299,3),这是有道理的 . 但我不知道如何将CVPixelBuffer转换为该格式 . 有人可以帮我理解为...

热门问题