标签: reverse-engineering

有没有反编译Delphi的程序?

有人刚给我发了一个程序的反编译到C.这是一个非常好的反编译,产生了很好的,主要是可读的C代码(如果你忽略了没有变量或函数都有一个人类可读的名字的事实),大多看起来像它实际上会编译.

但是有一个大问题.我碰巧知道他反编译的程序是用Delphi编写的,其中充满了难以转化为C的概念.但我对反编译器的输出印象深刻,这让我很奇怪.德尔福有什么可以做到的吗?

我见过Delphi的最好的反编译工具是DeDe.它可以做很多事情,但它甚至不会尝试生成Object Pascal代码作为其输出,并且自Delphi 6以来它还没有更新.那里有什么更好的东西吗?

delphi decompiling reverse-engineering

21
推荐指数
3
解决办法
8万
查看次数

将功能注入二进制文件的最佳方法

将功能插入二进制应用程序(3d方,闭源)的最佳方法是什么.

目标应用程序在OSX上,似乎是使用gcc 3+编译的.我可以看到二进制文件中实现的函数列表,并调试和隔离了一个我想远程调用的特定函数.

具体来说,zoomByFactor(x,y)当我从复杂的HIDevice接收某些数据时,我想调用这个函数 - 让它称之为void .

我可以轻松地将指令修改或注入二进制文件本身(即,修补不需要仅在RAM中进行).

作为一种"很好"的方式,你会推荐什么?

编辑:

我确实需要整个申请.所以我不能抛弃它并使用库.(对于那些需要道德解释的人:这是一个专有的CAD软件,其公司网站自2006年以来一直没有更新.我已经支付了这个产品(相当多的钱,实际上是什么)并且有项目我不能轻易从中迁移出来的数据.该产品很适合我,但我想使用我最近得到的新HID.我已经检查了应用程序的内部,我相当自信我可以用相关数据调用正确的函数并使其正常工作).

这是我到目前为止所做的,而且非常好.

我已经通过这个过程修改了部分应用程序:

xxd -g 0 binary > binary.hex
cat binary.hex | awk 'substitute work' > modified.hex
xxd -r modified.hex > newbinary
chmod 777 newbinary

我正在做这种跳过箍,因为二进制几乎是100兆大.

我想的是我在主应用程序循环中的某个地方jmp,启动一个线程,然后返回main函数.

现在,问题是:我在哪里可以插入新代码?我需要修改符号表吗?或者,我怎样才能自动加载dylib,以便我需要做的唯一"黑客攻击"是将对正常加载的dylib的调用插入到main函数中?

macos reverse-engineering code-injection

20
推荐指数
2
解决办法
7775
查看次数

Windows中用于查看ELF文件格式的任何工具/软件?

有很多PE文件浏览器.如果您有兴趣,请列出好的列表:

PE文件格式查看器:

我还在Windows上工作,我想查看ELF文件.有没有工具?我正在谷歌搜索,但直到现在都找不到.

windows assembly linker reverse-engineering elf

20
推荐指数
2
解决办法
5万
查看次数

.rdata和.idata段之间有什么区别?

我在IDA注意到,我分析的PE文件不仅包括该.rdata部分,还包括.idata.有什么不同?

windows reverse-engineering portable-executable

20
推荐指数
2
解决办法
2万
查看次数

分析未知格式的打包文件,如何继续?

我有兴趣深入了解我的Behringer X32调音台的固件,所以我从(http://www.behringerdownload.de/X32/X32_Firmware_2.10.zip)下载了实际文件并启动了IDA pro.内部包含的.update文件以某种时间戳开头,下面的字符串几乎看起来像一个目录列表,我假设那些文件以某种方式连接到固件更新文件中.例如,有字符串

seg000:00005480: logo/X32RACK.bmp
Run Code Online (Sandbox Code Playgroud)

但由于没有类似位图的结构,我认为这是压缩数据.我怎么能从这里继续?有没有办法解释各种打包和/或连接的文件格式猜测和尝试/错误的格式.

或者 - 甚至更好 - 有人知道使用这种结构的包装工吗?

64    bytes c-string
24    bytes zero, probably reserved
DWORD with some index, increasing thru the file but not always +1
DWORD of files Size
32    bytes additional data
Run Code Online (Sandbox Code Playgroud)

到目前为止我发现了什么:

00000000  db '"2.10 23db64e4672e (Thu, 20 Nov 2014 14:50:29 +0100) (clean)"',0,0,0; UpdateID
00000000  dd 6 dup(0)  ; reserved
00000000  dd 181   ; NumberOfContainedFiles
00000000  dd 12380    ; SomeUnknownValue
00000000  dd 44B026A4h, 0BA3708DBh, 4DD38F6Eh, 0F7C30159h, 31D6B225h; Data
00000000  dd …
Run Code Online (Sandbox Code Playgroud)

compression reverse-engineering unpack firmware

20
推荐指数
1
解决办法
692
查看次数

Discord 如何连接到特定进程的音频?

通过 Google 搜索结果,没有广为人知的方法可以从 Microsoft Windows 上的特定应用程序中捕获音频,至少不必求助于变通方法,例如将音频从一个进程发送到单独的虚拟音频环回设备(但这会导致无法听到声音,除非您使用硬件环回播放设备或通过主输出“收听”模拟输入)。

这些变通方法很笨拙,需要为每个特定应用程序进行配置,并且软件通常会出现错误行为,如果在执行期间更改其输出设备,则不再成功发出任何声音或直接停止工作。同时,推出Discord“实时流媒体”会话让您可以轻松无故障地与 VoIP 群组通话共享单个应用程序的声音。来自其他应用程序的声音被完全删除。看音频设备,似乎没有发生虚拟环回路由,客户端音频播放绝对零中断。该功能在 macOS 或 Linux 版本的软件上不可用,仅在 Windows 上可用。因此,在 Win32 中可以从特定进程捕获声音,但为什么其他人不这样做呢?比如说,在一个非常有用的软件分支中实现这样的东西需要什么,比如 OBS 或 Audacity?

audio hook winapi reverse-engineering

20
推荐指数
1
解决办法
1209
查看次数

逆向工程在哪里使用?

我问自己在哪里使用逆向工程.我有兴趣学习它.但我不知道我是否可以/应该把它放在我的简历上.

我不希望我的新主管认为我是一个邪恶的黑客或其他东西.:)

  • 值得吗?
  • 我应该学习它还是把我的努力放在其他地方?
  • 那里有一本好的书或教程吗?:)

reverse-engineering

19
推荐指数
3
解决办法
7047
查看次数

整个应用程序的调用图

是否有一个非玩具工具可以创建整个应用程序的调用图?我并不是指通过逐个方法指向获取图片或绘制调用图.

我需要一个可以通过编程方式访问的调用图,即工具应该以文本模式(例如XML)将其刷新到文件中,或者在内存中构建调用图(这对于大型应用程序来说会成为问题).内置在DB中的调用图会很棒.

静态和动态呼叫图都是需求的; 虽然静态更有趣,但事实是它过于活跃是可以接受的.

到目前为止我尝试过Soot.但是,它甚至无法处理像FreeCol这样的中型项目(Java源代码可用).Soot在该项目上耗尽了1.5GB内存,然后JVM崩溃,如下所述:http://www.sable.mcgill.ca/pipermail/soot-list/2008-July/001828.html

如上所述,有人可以建议生成调用图的工具吗?Java或.NET语言都可以.

.net java architecture refactoring reverse-engineering

19
推荐指数
2
解决办法
6453
查看次数

逆向工程文件格式

这是我第一次尝试逆向工程,实际上,我不知道如何去做.我有一种程序性的思想,没有关于流行加密方法的知识基础.

但是,在我看来,如果我有正确格式的最小数据,并且知道某个单词或单词的数据中出现,并且该单词在数据的开头和结尾处 - 我可以某种方式发现解密整个文件的方法.

----- ENCRYPTED -------------------------------------------
HEX     44 5E 12 47 55 5E 53 17 4C 5C 49 4F 4F
ACII    D  ^  ?  G  U  ^  S  ?  L  \  I  O  O
DEC     68 94 63 71 85 94 83 63 76 92 73 79 79 
BIN     01000100 01011110 00111111 01000111 01010101 01011110 01010011 00111111    01001100 01011100 01001001 01001111 01001111
----- DECRYPTED -------------------------------------------
HEX     74 6F 20 74 61 6B 65 20 74 65 73 74 73 …
Run Code Online (Sandbox Code Playgroud)

file-format reverse-engineering

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

使用Eclipse中的Papyrus Software Designer进行Java逆向工程版本:Neon.3(4.6.3)

我想逆向工程我的工作区的注册包,所以我去模型浏览器,点击鼠标右键,我应该看到一个带有选项导入的菜单,菜单选项:

  • 导入注册档案
  • 导入注册包
  • 从用户模型导入包

在此输入图像描述

但这就是我所看到的:

在此输入图像描述

这是纸莎草纸的版本

在此输入图像描述

我还试图将包从包浏览器中反向设计的包拖放到类图中,但它没有用完..

在此输入图像描述

java eclipse uml reverse-engineering papyrus

19
推荐指数
1
解决办法
3129
查看次数