标签: reverse-engineering

除了Wireshark之​​外,我如何进行逆向工程基于UDP的自定义游戏协议?

除了Wireshark之​​外,我如何进行逆向工程基于UDP的自定义游戏协议?我可以记录一堆流量,但那又怎么样?我的目标是为Wireshark编写一个解剖器插件,最终能够解码游戏命令.这看起来可行吗?我可能面临哪些挑战?命令是否可以加密?

reverse-engineering network-protocols wireshark

4
推荐指数
2
解决办法
2615
查看次数

C# - 可执行文件可以解密(可以进行逆向工程)?

C#可以进行逆向工程吗?怎么这么容易?我们可以说C#在安全方面不够好吗?那么C++与C#相比反编译呢?

c# c++ reverse-engineering

4
推荐指数
2
解决办法
1991
查看次数

逆向工程和修补DirectX游戏?

背景

我正在玩Imphouishable Night,这是东方系列游戏之一.拍摄按钮为"z",移动速度较慢为"移位",箭头键移动.对我来说不幸的是,使用shift-z ghosts我的右箭头键,所以我不能在拍摄时向右移动.这种重影发生在所有应用程序中,并且切换键盘修复了它.

目标

我想在反汇编代码中找到获取键盘输入的directx函数,并将其与'z'键进行比较,并将该键更改为'a'.我认为这是一个有趣的项目.假设扫描码的大小相同,这应该相当简单.而且因为可执行文件只有 400k,这可能会为我提供一个独特的机会来探索计算黑社会的黑暗面(开玩笑).

相关经验

我有一些在装配中编码的经验,但不是在拆卸这些.我没有使用DirectX apis的经验.

我需要一些指导.我找到了一个directx键盘扫描码列表,以及一个名为PEExplorer的程序,看起来它可以满足我的需求.

有没有办法让我可以通过C函数调用转换一些程序集,以便更容易阅读?我将需要找到游戏检索当前按下的键的位置,将它们与列表进行比较,这是我需要修改的列表.

任何投入将不胜感激.

directx reverse-engineering disassembly

4
推荐指数
1
解决办法
1382
查看次数

如何从可执行文件/目标文件中查看0和1 /机器代码?

我已经尝试了这个,我用文本编辑器打开了一个a.out文件,但是我只得到了一堆带有一些指令的字符,如:

UU

binary executable reverse-engineering machine-code object-files

4
推荐指数
1
解决办法
517
查看次数

重新创建损坏的Delphi表单

我收到了一个我想要改编的实用程序的源代码,但似乎有.dfm文件以二进制格式存储,其中一个.dfm文件似乎是coRruPted.我也有编译的.exe文件.

有没有办法从.exe中提取表单?

我可以从相关的.pas文件中看到表单类型声明和表单上的组件.如何从头开始重新创建表单,并将其"附加"到原始.pas文件?

forms delphi vcl reverse-engineering

4
推荐指数
1
解决办法
1013
查看次数

反汇编以识别加密算法

目标(常规) 我的最终(长期)目标是将二进制文件的导入程序编写到另一个应用程序中

问题背景

  • 我对二进制文件格式中的两个字段感兴趣.一个是加密的,另一种是压缩的,可能也是加密的(见我的这个结论是如何到达这里).
  • 我有一个查看器程序(我称之为viewer.exe),可以打开这些文件进行查看.我希望这可以提供一些线索.
  • 我(很快)将有一个相关的解密输出进行比较,并有值搜索.
  • 这是我发现的最相关的stackoverflow Q/A.

问题具体
考虑到我必须确定所使用算法的资源,最佳策略是什么?

目前的想法

  • 我意识到,如果没有密钥,从数据中识别算法实际上是不可能的

  • 拥有一个文件和一个viewer.exe,我必须在某处拥有密钥.无论是公共的,私人的,对称的......这都很好.

  • 我想用findlypt插件作为第一步,使用OllyDbg反汇编viewer.exe.我只是不够精通这种事情来完成它.

资源
完整示例文件从字段中
提取二进制文件我对
解密数据感兴趣 在此zip存档中有一个浮点数的二进制列表,表示x,y,z(model2.vertices)和二进制整数列表(model2.faces).我还包含了一个"stl"文件,您可以使用许多免费程序查看,但由于数据存储在STL中的奇怪方式,这不是我们期望从原始文件中获得的.

进展
1.我用Olly反汇编程序,然后做了我唯一知道如何处理这个poing并且在导入文件之前暂停了porgram之后"搜索了所有引用的文本".然后我搜索了诸如"crypt,hash,AES,encrypt,SHA等"之类的单词.我想出了一些东西,最值得注意的是"Blowfish64",这似乎与mydata偶尔长度为4个字节的事实很好(因为它保证是mod 12 = 0)这对我来说看起来像填充64位块大小(奇数量的顶点导致非mod 8字节量).我还发现错误消息,如...

"无效的数据大小,(Size-4)mod 8必须为0"

在阅读了下面的Igor的回复之后,这是来自signsrch的输出.我用绿点更新了这个图像,当用int3替换时没有问题,如果程序无法启动则没有问题,如果在加载感兴趣的文件时失败则为橙色.没有点意味着我还没有测试过它.

Signsrch结果注释

配件信息

  • 我使用Windows 7 64位
  • viewer.exe是win32 x86应用程序
  • 数据是base64编码和加密的
  • 解密数据是12个字节的组,代表3个浮点数(x,y,z坐标)
  • 我有使用findcrypt插件的OllyDb v1.1,但我的用法仅限于跟随这些人youtube视频

encryption reverse-engineering disassembly

4
推荐指数
1
解决办法
1万
查看次数

Delphi汇编调用

我一直在玩IDA中的一些Delphi程序集.

我注意到很多我不理解的系统调用,并且无法找到有关它们的任何文档.例如:我注意到很多对未知函数LStrClr(void*)的调用.

我能找到的最好的是这个网站http://www.delphibasics.co.uk/ByLetter.asp?Letter=A 但它缺少很多函数调用,包括LStrClr.

非常感谢您的回复,Michael Engstler.

delphi assembly reverse-engineering system-calls basm

4
推荐指数
1
解决办法
1669
查看次数

如何在64位DLL中查找导出函数的地址?

我正在分析32位和64位DLL.我想找出导出函数的地址是什么.我已经处理过32位DLL,但相同的代码不适用于64位模块.

    DWORD address = (*module)->getImageBaseAddress();
    DWORD headerAddress = address + ((PIMAGE_DOS_HEADER)address)->e_lfanew;
    PIMAGE_NT_HEADERS header = (PIMAGE_NT_HEADERS)headerAddress;
    PIMAGE_EXPORT_DIRECTORY exports = (PIMAGE_EXPORT_DIRECTORY)(address + header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);
    PVOID names = (BYTE *)address + exports->AddressOfNames;
    PVOID moduleFunctions = (BYTE *)address + exports->AddressOfFunctions;
    std::cout << "Characteristics: " << exports->Characteristics << endl;
    std::cout << "TimeDateStamp: " << exports->TimeDateStamp << endl;
    std::cout << "Major version: " << exports->MajorVersion << endl;
    std::cout << "Minor version: " << exports->MinorVersion << endl;
    std::cout << "Name: " << exports->Name << endl;
    std::cout << "Base: …
Run Code Online (Sandbox Code Playgroud)

c++ windows dll reverse-engineering 32bit-64bit

4
推荐指数
1
解决办法
1492
查看次数

IDA Pro反汇编显示?而不是.data中的hex或plain ascii?

我正在使用IDA Pro来反汇编Windows DLL文件.有一点我有一行代码说

mov esi, dword_xxxxxxxx
Run Code Online (Sandbox Code Playgroud)

我需要知道dword是什么,但是双击它会把我带到.data页面,所有内容都有问号.

我如何获得应该存在的纯文本?

windows reverse-engineering ida disassembly

4
推荐指数
1
解决办法
1383
查看次数

我如何监控Pokemon Go的Http请求?

我很想知道Pokemon Go的要求和响应的样子,类似于在网站上使用chrome dev工具.有没有什么方法可以像监控网站一样监控Android应用程序的请求?

android reverse-engineering http

4
推荐指数
2
解决办法
3855
查看次数