这是我试图弄清楚如何分解 exe 的第四天。
仍然没有运气,文件在运行后立即给出调试器错误。我正在使用 OllyDBG,看起来文件要么被压缩,要么包含大量数据。我认为这只是为了调试保护,但我无法让它工作。
我正在尝试学习汇编,这是我在测试应用程序方面取得更好的“新水平”成就。我想要更改的只是将 exe 文件内的一种文本更改为另一种文本。所以这是一个变量的变化。即使只是简单地改变里面的数字我也会感到满意。只是想知道如何。
该文件在打开后最初运行其他exe,但这不是我想要触摸或编辑的任何内容。
这是文件的打开方式:
00401000 >/$ 68 01504400 PUSH tryme.00445001
00401005 |. E8 01000000 CALL tryme.0040100B
0040100A \. C3 RETN
0040100B $ C3 RETN
0040100C A9 DB A9
0040100D FE DB FE
0040100E 39 DB 39 ; CHAR '9'
0040100F B1 DB B1
00401010 30 DB 30 ; CHAR '0'
00401011 D8 DB D8
00401012 BB DB BB
00401013 A6 DB A6
00401014 45 DB 45 ; CHAR 'E'
00401015 23 DB 23 ; …Run Code Online (Sandbox Code Playgroud) 我正在使用GDB调试Mac OS X 64位应用程序。我看到跳过一大堆代码可以解决我所有的问题。
但:
如何修补可执行文件以实现跳转?我希望应用程序在没有调试器的情况下自动跳转到代码中的定义点。
这就是我想做的:
在地址0x1000027a9(由调试器提供)处跳转到address 0x100003b6e。我正在努力通过HexEdit进行操作,但是没有成功。我在任何地方都读到了关于jmp到绝对地址操作码的信息(FF似乎是正确的操作码,但这是一个调用,而不是跳转...),但是没有任何效果。错误的访问,segfault。
我怎样才能做到这一点?