除了Wireshark之外,我如何进行逆向工程基于UDP的自定义游戏协议?我可以记录一堆流量,但那又怎么样?我的目标是为Wireshark编写一个解剖器插件,最终能够解码游戏命令.这看起来可行吗?我可能面临哪些挑战?命令是否可以加密?
C#可以进行逆向工程吗?怎么这么容易?我们可以说C#在安全方面不够好吗?那么C++与C#相比反编译呢?
我正在玩Imphouishable Night,这是东方系列游戏之一.拍摄按钮为"z",移动速度较慢为"移位",箭头键移动.对我来说不幸的是,使用shift-z ghosts我的右箭头键,所以我不能在拍摄时向右移动.这种重影发生在所有应用程序中,并且切换键盘修复了它.
我想在反汇编代码中找到获取键盘输入的directx函数,并将其与'z'键进行比较,并将该键更改为'a'.我认为这是一个有趣的项目.假设扫描码的大小相同,这应该相当简单.而且因为可执行文件只有 400k,这可能会为我提供一个独特的机会来探索计算黑社会的黑暗面(开玩笑).
我有一些在装配中编码的经验,但不是在拆卸这些.我没有使用DirectX apis的经验.
我需要一些指导.我找到了一个directx键盘扫描码列表,以及一个名为PEExplorer的程序,看起来它可以满足我的需求.
有没有办法让我可以通过C函数调用转换一些程序集,以便更容易阅读?我将需要找到游戏检索当前按下的键的位置,将它们与列表进行比较,这是我需要修改的列表.
任何投入将不胜感激.
我已经尝试了这个,我用文本编辑器打开了一个a.out文件,但是我只得到了一堆带有一些指令的字符,如:
UU
binary executable reverse-engineering machine-code object-files
我收到了一个我想要改编的实用程序的源代码,但似乎有.dfm文件以二进制格式存储,其中一个.dfm文件似乎是coRruPted.我也有编译的.exe文件.
有没有办法从.exe中提取表单?
我可以从相关的.pas文件中看到表单类型声明和表单上的组件.如何从头开始重新创建表单,并将其"附加"到原始.pas文件?
目标(常规) 我的最终(长期)目标是将二进制文件的导入程序编写到另一个应用程序中
问题背景
问题具体
考虑到我必须确定所使用算法的资源,最佳策略是什么?
目前的想法
我意识到,如果没有密钥,从数据中识别算法实际上是不可能的
拥有一个文件和一个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替换时没有问题,如果程序无法启动则没有问题,如果在加载感兴趣的文件时失败则为橙色.没有点意味着我还没有测试过它.

配件信息
我一直在玩IDA中的一些Delphi程序集.
我注意到很多我不理解的系统调用,并且无法找到有关它们的任何文档.例如:我注意到很多对未知函数LStrClr(void*)的调用.
我能找到的最好的是这个网站http://www.delphibasics.co.uk/ByLetter.asp?Letter=A 但它缺少很多函数调用,包括LStrClr.
非常感谢您的回复,Michael Engstler.
我正在分析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) 我正在使用IDA Pro来反汇编Windows DLL文件.有一点我有一行代码说
mov esi, dword_xxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我需要知道dword是什么,但是双击它会把我带到.data页面,所有内容都有问号.
我如何获得应该存在的纯文本?
我很想知道Pokemon Go的要求和响应的样子,类似于在网站上使用chrome dev工具.有没有什么方法可以像监控网站一样监控Android应用程序的请求?
disassembly ×3
c++ ×2
delphi ×2
windows ×2
32bit-64bit ×1
android ×1
assembly ×1
basm ×1
binary ×1
c# ×1
directx ×1
dll ×1
encryption ×1
executable ×1
forms ×1
http ×1
ida ×1
machine-code ×1
object-files ×1
system-calls ×1
vcl ×1
wireshark ×1