有人刚给我发了一个程序的反编译到C.这是一个非常好的反编译,产生了很好的,主要是可读的C代码(如果你忽略了没有变量或函数都有一个人类可读的名字的事实),大多看起来像它实际上会编译.
但是有一个大问题.我碰巧知道他反编译的程序是用Delphi编写的,其中充满了难以转化为C的概念.但我对反编译器的输出印象深刻,这让我很奇怪.德尔福有什么可以做到的吗?
我见过Delphi的最好的反编译工具是DeDe.它可以做很多事情,但它甚至不会尝试生成Object Pascal代码作为其输出,并且自Delphi 6以来它还没有更新.那里有什么更好的东西吗?
将功能插入二进制应用程序(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函数中?
有很多PE文件浏览器.如果您有兴趣,请列出好的列表:
PE文件格式查看器:
- PE Explorer http://www.pe-explorer.com/
- PE VIew:http: //www.magma.ca/~wjr/
- PEBrowse Professional http://www.smidgeonsoft.prohosting.com/pebrowse-pro-file-viewer.html
- PE浏览专业互动 - http://www.smidgeonsoft.prohosting.com/pebrowse-pro-interactive-debugger.html
我还在Windows上工作,我想查看ELF文件.有没有工具?我正在谷歌搜索,但直到现在都找不到.
我在IDA注意到,我分析的PE文件不仅包括该.rdata部分,还包括.idata.有什么不同?
我有兴趣深入了解我的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) 通过 Google 搜索结果,没有广为人知的方法可以从 Microsoft Windows 上的特定应用程序中捕获音频,至少不必求助于变通方法,例如将音频从一个进程发送到单独的虚拟音频环回设备(但这会导致无法听到声音,除非您使用硬件环回播放设备或通过主输出“收听”模拟输入)。
这些变通方法很笨拙,需要为每个特定应用程序进行配置,并且软件通常会出现错误行为,如果在执行期间更改其输出设备,则不再成功发出任何声音或直接停止工作。同时,推出Discord“实时流媒体”会话让您可以轻松无故障地与 VoIP 群组通话共享单个应用程序的声音。来自其他应用程序的声音被完全删除。看音频设备,似乎没有发生虚拟环回路由,客户端音频播放绝对零中断。该功能在 macOS 或 Linux 版本的软件上不可用,仅在 Windows 上可用。因此,在 Win32 中可以从特定进程捕获声音,但为什么其他人不这样做呢?比如说,在一个非常有用的软件分支中实现这样的东西需要什么,比如 OBS 或 Audacity?
我问自己在哪里使用逆向工程.我有兴趣学习它.但我不知道我是否可以/应该把它放在我的简历上.
我不希望我的新主管认为我是一个邪恶的黑客或其他东西.:)
是否有一个非玩具工具可以创建整个应用程序的调用图?我并不是指通过逐个方法指向获取图片或绘制调用图.
我需要一个可以通过编程方式访问的调用图,即工具应该以文本模式(例如XML)将其刷新到文件中,或者在内存中构建调用图(这对于大型应用程序来说会成为问题).内置在DB中的调用图会很棒.
静态和动态呼叫图都是需求的; 虽然静态更有趣,但事实是它过于活跃是可以接受的.
到目前为止我尝试过Soot.但是,它甚至无法处理像FreeCol这样的中型项目(Java源代码可用).Soot在该项目上耗尽了1.5GB内存,然后JVM崩溃,如下所述:http://www.sable.mcgill.ca/pipermail/soot-list/2008-July/001828.html
如上所述,有人可以建议生成调用图的工具吗?Java或.NET语言都可以.
这是我第一次尝试逆向工程,实际上,我不知道如何去做.我有一种程序性的思想,没有关于流行加密方法的知识基础.
但是,在我看来,如果我有正确格式的最小数据,并且知道某个单词或单词的数据中出现,并且该单词在数据的开头和结尾处 - 我可以某种方式发现解密整个文件的方法.
----- 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) 我想逆向工程我的工作区的注册包,所以我去模型浏览器,点击鼠标右键,我应该看到一个带有选项导入的菜单,菜单选项:
但这就是我所看到的:
这是纸莎草纸的版本
我还试图将包从包浏览器中反向设计的包拖放到类图中,但它没有用完..
java ×2
windows ×2
.net ×1
architecture ×1
assembly ×1
audio ×1
compression ×1
decompiling ×1
delphi ×1
eclipse ×1
elf ×1
file-format ×1
firmware ×1
hook ×1
linker ×1
macos ×1
papyrus ×1
refactoring ×1
uml ×1
unpack ×1
winapi ×1