【问题标题】:Swift MAC app failed to laucnh after being patched by IDASwift MAC 应用程序在被 IDA 修补后无法启动
【发布时间】:2019-07-28 18:47:57
【问题描述】:

我是苹果设备逆向工程的新手,我开发了一个非常简单的破解我来学习!一切正常,但是当我在 IDA 中打开我的二进制文件并更改条件指令并应用补丁时,我的应用程序在启动时开始失败!

有两种方法可以破解代码,第一种是将条件语句从 JNZ 更改为 JZ,另一种方法是在 JNZ 指令下方 NOP 执行 JMP 函数。

__text:0000000100001387                 mov     rdi, [rbp+var_68]
__text:000000010000138B                 call    _objc_release
__text:0000000100001390                 mov     al, [rbp+var_81]
__text:0000000100001396                 test    al, 1
__text:0000000100001398                 jnz     short loc_10000139F// Goes for Correct condition
__text:000000010000139A                 jmp     loc_100001475 //goes for incorrect condition

在我有逆向工程经验的 C 和其他语言中,这些解决方案可以工作。有没有人知道这里发生了什么?

编辑

这是我的快速破解密码!

import Cocoa

class ViewController: NSViewController {

    @IBAction func btn(_ sender: Any) {

        if(input.stringValue == "!@#><1234")
        {
            let box = NSAlert()
            box.alertStyle = .informational
            box.messageText = "Cool!"
            box.runModal()
        }else{
            let box = NSAlert()
            box.alertStyle = .critical
            box.messageText = "Not Cool!"
            box.runModal()
        }
    }

    @IBOutlet weak var input: NSTextField!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override var representedObject: Any? {
        didSet {

        }
    }
}

解决方案

这是其二进制文件中的代码签名问题。我认为当我们应用补丁并更改二进制文件时,操作系统不允许执行应用程序。所以我刚刚辞职了我的应用程序,现在它已经破解并且可以工作了。

【问题讨论】:

  • 请不要发布指向外部文件托管商的链接。 Stack Overflow 上的所有问题都必须是独立的。相反,请将您的应用程序的源代码或minimal reproducible example 发布到问题中。
  • @fuz 抱歉,已编辑
  • 现在您的问题根本不包含任何项目,并且无法重现。按照我之前说的做,并附上minimal reproducible example(重点是reproducible)。
  • @sci3nt15t 请将解决方案作为答案发布,而不是作为原始问题的一部分。

标签: swift assembly x86-64 disassembly ida


【解决方案1】:

解决方案

这是其二进制文件中的代码签名问题。我认为当我们应用补丁并更改二进制文件时,操作系统不允许执行应用程序。所以我刚刚辞职了我的应用程序,现在它已经破解并且可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2018-06-27
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多