小编C0d*_*ker的帖子

运行时的iOS Patch程序指令

如何在应用程序运行时修改应用程序中的各个汇编指令?

我有一个Mobile Substrate调整,我正在为现有的应用程序编写.在tweak的构造函数(MSInitialize)中,我需要能够在应用程序的代码中重写单个指令.我的意思是,我希望修改应用程序的地址空间中的多个位置,但在每个实例中,只需要修改一条指令.我已经为应用程序禁用了ASLR,并且知道要修补的指令的确切内存地址,并且我有新指令的十六进制字节(作为char [],但这是不重要的,并且必要时可以更改).我只需要弄清楚如何进行更改.

我知道iOS使用数据执行保护(DEP)来指定可执行内存页面也不可写,反之亦然,但我知道可以在越狱设备上绕过它.我也知道iDevices使用的ARM处理器有一个指令缓存,需要更新以反映更改.但是,我甚至不知道从哪里开始这样做.

所以,为了回答肯定会被问到的问题,我没有尝试过任何事情.这不是因为我很懒; 相反,这是因为我完全不知道如何实现这一目标.任何帮助都将非常感激.

编辑:

如果它有帮助,我的最终目标是在移动基板调整中使用它来挂钩App Store应用程序.以前,为了修改这个应用程序,必须先破解它来解密应用程序,以便修补二进制文件.我想做到这一点,所以人们不必破解应用程序,因为这可能导致盗版,我强烈反对.我不能正常使用Mobile Substrate,因为所有的工作都是用C++完成的,而不是Objective-C,并且应用程序被剥离,没有任何符号可供使用MSHookFunction.

c assembly jailbreak ios cydia-substrate

21
推荐指数
1
解决办法
2315
查看次数

包含生成的makefile而不显示警告消息

对于我的项目,我会自动生成makefile并包含它们,如下所示:

all:
    @echo 'SUCCESS is $(SUCCESS)'

clean:
    rm depend.mk

depend.mk:
    @echo 'Creating $@'
    @echo 'SUCCESS := 1' > $@

.PHONY: all clean

include depend.mk
Run Code Online (Sandbox Code Playgroud)

这有效,但include行会生成一条警告消息:

$ make
Makefile:13: depend.mk: No such file or directory
Creating depend.mk
SUCCESS is 1
Run Code Online (Sandbox Code Playgroud)

我想沉默第一条警告线说依赖.mk不存在.我知道它不存在,因为我有一个规则来生成它,所以警告是不必要的(除非当然没有规则).我不希望make忽略包含文件不存在的错误,并且没有规则,因此前缀includea -忽略错误对我不起作用.我想要类似于bash将stderr管道到/ dev/null的惯例,some_cmd 2>/dev/null但是要包含在make中.

上面的示例是此案例的一个非常简单的示例.在我的实际项目中,包含了很多自动生成的makefile(通过clang的自动依赖关系生成),这意味着新的运行make会使我的屏幕充满这些警告消息.

这样的事情是否可能,或者我只是要处理烦人的警告信息?

makefile gnu-make

7
推荐指数
1
解决办法
2063
查看次数

使用Python批量编辑csv文件

我需要编辑几个csv文件.实际上,大多数文件都是正常的,它只是需要更改的最后一个(第41个)列.对于该列中特定字符串的每次出现,我需要将其替换为不同的字符串; 具体而言,每次出现'SD'都需要用'S'代替.我试图用Python完成这个,但我想我需要编写csv文件,我不太清楚如何做到这一点:

import os 
import csv


path=os.getcwd()

filenames = os.listdir(path)

for filename in filenames:

    if filename.endswith('.csv'):
        r=csv.reader(open(filename))

        for row in r:
            if row[40] == "S-D":
                row[40] = "S"
Run Code Online (Sandbox Code Playgroud)

有帮助吗?此外,如果有人用shell脚本快速,优雅地做到这一点,那对我来说也许会非常有帮助.

python csv scripting

5
推荐指数
1
解决办法
2784
查看次数

数字打印程序中的分段错误

当我运行这个时,我得到一个分段错误?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static char* exe;

void usage(void) {
    printf("Usage: %s <number of integers>\n", exe);
}

int main(int argc, char** argv) {
    //This program reads in n integers and outputs them/
    //in reverse order. However, for some odd reason, I/
    //am getting an error when I run it with no command/
    //line arguments. It is supposed to display helpful/
    //usage information out, but instead it segfaults??/
    exe = malloc(50 * sizeof(*exe));
    strncpy(exe, argv[0], 49);

    if(argc != …
Run Code Online (Sandbox Code Playgroud)

c segmentation-fault

0
推荐指数
1
解决办法
241
查看次数