小编Kry*_*ton的帖子

是否可以编辑和重新编译iOS二进制文件?

经过大量时间与Google合作,我决定在这里提出这个问题.但我无法得到我的问题的答案.以下是详细信息:

我有一个申请并最近发布到Cydia.它已被其他人破解并在torrent网站上发布.有趣的是我内部有一个二进制校验和验证机制,他们能够破解整个东西,并根据他们对二进制文件所做的更改创建了新的校验和文件.他们编辑了两个函数并对其进行反编译并将其发布给种子.

所以我已经用IDA Pro做了一些研究,发现可以看到函数和类的实际实现.但是为了编辑函数,他们必须找到该函数的地址并通过HEX EDITOR编辑它.这部分让我感到困惑,是否有人帮我这个?我不想让它"不可撼动":) ..我猜不是那么容易.:)但我真的想知道他们是如何破解的?:)

我的问题是如何编辑iOS二进制文件中的函数并重新编译它?例如,我的一个班级中有以下方法.

- (id) getSomething {

   return @"Something";
}
Run Code Online (Sandbox Code Playgroud)

我想编辑这个函数的返回值.那可能吗?

reverse-engineering otool ida ios

12
推荐指数
1
解决办法
3548
查看次数

无法加载lept从loader findLibrary返回null?

我正在进行OCR(光学字符识别)我从github获得了一个示例项目.对于这个项目我正在使用tess-test库项目并且项目构建并成功执行但是每当调用TessBaseAPI时,应用程序停止不幸......它显示以下日志错误

12-20 18:27:18.791: E/AndroidRuntime(24466): java.lang.ExceptionInInitializerError
12-20 18:27:18.791: E/AndroidRuntime(24466):    at com.datumdroid.android.ocr.simple.SimpleAndroidOCRActivity.onPhotoTaken(SimpleAndroidOCRActivity.java:211)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at com.datumdroid.android.ocr.simple.SimpleAndroidOCRActivity.onActivityResult(SimpleAndroidOCRActivity.java:135)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.app.Activity.dispatchActivityResult(Activity.java:5293)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3315)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3362)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.app.ActivityThread.access$1100(ActivityThread.java:141)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.os.Looper.loop(Looper.java:137)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at android.app.ActivityThread.main(ActivityThread.java:5039)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at java.lang.reflect.Method.invokeNative(Native Method)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at java.lang.reflect.Method.invoke(Method.java:511)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-20 18:27:18.791: E/AndroidRuntime(24466):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-20 18:27:18.791: …
Run Code Online (Sandbox Code Playgroud)

ocr android

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

C vs C++文件处理

我一直在使用C和C++,当涉及到文件处理时,我感到困惑.让我说出我所知道的事情.

在C中,我们使用函数:

  • fopen,fclose,fwrite,fread,ftell,fseek,fprintf,fscanf,feof,fileno,fgets,fputs,fgetc,fputc.
  • 文件指针的FILE*fp.
  • 模式如r,w,a

我知道何时使用这些功能(希望我没有错过任何重要的事情).

在C++中,我们使用函数/运算符:

  • fstream f
  • f.open,f.close,f >>,f <<,f.seekg,f.seekp,f.tellg,f.tellp,f.read,f.write,f.eof.
  • 模式如ios :: in,ios :: out,ios :: bin等...

那么(推荐)可以在C++中使用C兼容的文件操作吗?哪个更广泛使用,为什么?除了这些我还应该注意什么?

c c++ file-io file

9
推荐指数
1
解决办法
4987
查看次数

如何在64位Android-L平台上使用32位本机库

我有一个Android应用程序,我用AOSP(Kitkat)编译为android系统应用程序,它运行正常.我的应用程序依赖于使用Android-NDK编译为32位库的本机代码.我在我的android应用程序libs/armeabi文件夹中复制本机库,然后在AOSP中构建我的android应用程序(我还修改了device.mk以复制/ system/lib文件夹中的libs ).在Android Kitkat上一切正常.

当我在Android-L(64位平台)上移植我的应用程序时,我无法从Android应用程序加载我的本机库,错误就像 -

java.lang.UnsatisfiedLinkError: dlopen failed: "libfoobar.so" is 32-bit instead of 64-bit

我使用以下java代码加载本机库 -

        if ( ENABLE_ANDROID_INTEGRATION )
        {
            System.load("/system/lib/libfoobar.so");
        }
        else
        {
            System.loadLibrary("foobar");
        }
Run Code Online (Sandbox Code Playgroud)

当我使用AOSP构建代码时,ENABLE_ANDROID_INTEGRATION

更有趣的是,当我关闭ENABLE_ANDROID_INTEGRATION并在Eclipse中构建我的应用程序时,在AOSP之外作为普通的"可下载"应用程序,然后我的应用程序在64位Android平台上正常运行.

我想知道的是 - 如何构建我的应用程序作为64位Android平台的32位库(即AOSP构建)的本机android系统应用程序?

我试过的 - 我在我的Android应用程序的Android.mk文件中使用了LOCAL_32_BIT_ONLY = true标志,但它接缝它没用.可能是我不完全了解这个标志的使用.

因为我的时间不多了所以我更喜欢在这里发布这个问题而不是RnD.如果有人遇到这个问题,请指导.

此致,Meraj

64-bit android-ndk android-source android-5.0-lollipop

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

guarded_open_np的参数

我发现guarded_open_nplibsqlite3.dylib使用该函数打开数据库文件.我看了一下sqlite3开源,没有这样的事情.所以Apple肯定会修改它guarded_open_np而不是使用unix open.

我知道这guarded_open_np是一个私有API,我找不到标题或文档.我想拦截(Cydia的MSFunctionHook)guarded_open_np,所以我需要知道什么是参数,而不仅仅是函数名称.

我使用IDA Pro对libsqlite3.dylib进行了逆向工程,这就是它所谓的guarded_open_np:

sub_79c1c:
push {r7, lr}
mov r7, sp
sub sp, #0x4
mov r3, r1
movw r1, #0xc57e
movt r1, #0x0
str r2, [sp, #0x4 + var_0]
add r1, pc
movs r2, #0xf
blx imp___picsymbolstub4__guarded_open_np
add sp, #0x4
pop {r7, pc}     
Run Code Online (Sandbox Code Playgroud)

但是,目前尚不清楚它可能采取什么样的准则.如果有一些官方网站提guarded_open_np及其所有参数,我很感激.

sqlite assembly objective-c ida ios

8
推荐指数
1
解决办法
734
查看次数

如何获取任何已安装的Android应用程序的清单权限

是否可以获得任何已安装的Android应用程序的清单权限?

permissions android manifest

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

Android - 如何跟踪进程的带宽使用情况?

我可以跟踪Android设备的整体和每个应用程序(应用程序)带宽使用情况android.net.TrafficStats.但是,uid可以执行多个二进制文件来调用多个进程.

我想知道是否有任何方法或方法来获取每个进程的带宽使用,以便我可以追溯启动连接到Internet的二进制文件.

android

6
推荐指数
1
解决办法
1483
查看次数

将Unity应用程序集成到现有iOS应用程序中

我有一个从Unity 5导出的iOS应用程序,我还使用vuforia为该Unity应用程序添加了ar.现在我想将Unity应用程序集成到我现有的iOS应用程序中.

我已经按照http://www.the-nerd.be/2015/11/13/integrate-unity-5-in-a-native-ios-app-with-xcode-7/#comment-446教程了适合在没有Vuforia的情况下集成Unity.

那么我怎样才能做到这一点,并且使用swift做得更好

xcode unity-game-engine ios swift unity5

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

无法在C中正确打印长双

我正在尝试打印一个简单的长双,但它不起作用

我尝试了什么:

long double ld=5.32;

printf("ld with le = %Le \n",ld);
printf("ld with lf = %Lf \n",ld);
printf("ld with lg = %Lg \n",ld);
Run Code Online (Sandbox Code Playgroud)

输出:

ld with le = -3.209071e-105 
ld with lf = -0.000000 
ld with lg = -3.20907e-105 
Run Code Online (Sandbox Code Playgroud)

有了新的价值:

ld=6.72;
Run Code Online (Sandbox Code Playgroud)

输出:

ld with le = -1.972024e+111 
ld with lf = -1972024235903379200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000 
ld with lg = -1.97202e+111 
Run Code Online (Sandbox Code Playgroud)

c long-double

4
推荐指数
1
解决办法
5628
查看次数

/ dev/mem和/ dev/kmem不存在?

如果有人能解释为什么这两个文件不存在,我将不胜感激?Android内核的虚拟内存空间和物理空间如何没有2个文件?

编辑:我有Android 2.3.7(Cyanogen mod),2个文件不存在: 在此输入图像描述

Edit2:我检查过运行ICS的三星Galaxy S3,存在2个文件

linux android linux-kernel

3
推荐指数
1
解决办法
4326
查看次数

Facebook提示用户登录两次

我有一个与 parse.com 集成的 Facebook 登录的 Android 应用程序。不幸的是,当用户使用 facebook 登录时,授权网络视图会启动两次。

我已经广泛搜索了合适的解决方案,但没有找到。我也玩过 facebook 端的几乎所有应用程序设置。

这是我从 LoginActivity 调用登录的地方。我不知道另一个登录名在哪里启动。

private void onLoginButtonClicked() {
    NativeLoginActivity.this.progressDialog = ProgressDialog.show(NativeLoginActivity.this, "", "Logging in...", true);
    List<String> permissions = Arrays.asList("public_profile", "user_friends", "user_about_me", "user_relationships", "user_birthday",
            "user_location");
    ParseFacebookUtils.logIn(permissions, this, new LogInCallback() {
        @Override
        public void done(ParseUser user, ParseException err) {
            //NativeLoginActivity.this.progressDialog.dismiss();
            if (user == null) {
                Log.d(TAG, "Uh oh. The user cancelled the Facebook login.");
            } else if (user.isNew()) {
                showUserDetailsActivity();
            } else {
                Log.d(TAG, "User logged in through Facebook!");
                showUserDetailsActivity();
            } …
Run Code Online (Sandbox Code Playgroud)

android facebook parse-platform

3
推荐指数
1
解决办法
940
查看次数

在哪里可以找到适用于 Android 的 nm 工具(已编译或源代码)

我想创建一个能够在 Android 中列出动态库 .so 文件的所有符号的应用程序。我想问一下有没有预编译的nm for Android 或者至少有nm 的源代码,这样我就可以自己编译了。

android toolchain android-ndk

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

Arm sourcery工具链链接错误

我想在我的一个函数中使用标准c函数

void print(const char* format,...) {    
    char buffer[256];
    va_list args;
    va_start (args, format);
    vsnprintf (buffer,256,format, args);
    va_end (args);
    sendString(buffer);
}
Run Code Online (Sandbox Code Playgroud)

错误来了

arm-none-eabi-ld  -o check.elf -T /home/sanju/Arm/check/other/ROM.ld Serial.o irq.o lowlevel.o main.o startup.o \
-L/usr/arm-none-eabi/lib   -lc -lg  -lm
/usr/arm-none-eabi/lib/libc.a(lib_a-svfprintf.o): In function `_svfprintf_r':
vfprintf.c:(.text+0x688): undefined reference to `__aeabi_dcmplt'
vfprintf.c:(.text+0xdfc): undefined reference to `__aeabi_dcmpeq'
vfprintf.c:(.text+0x10b4): undefined reference to `__aeabi_dcmpeq'
vfprintf.c:(.text+0x168c): undefined reference to `__aeabi_uldivmod'
vfprintf.c:(.text+0x16a8): undefined reference to `__aeabi_uldivmod'
vfprintf.c:(.text+0x1a48): undefined reference to `__aeabi_dcmpeq'
vfprintf.c:(.text+0x1eac): undefined reference to `__aeabi_dcmpeq'
/usr/arm-none-eabi/lib/libc.a(lib_a-dtoa.o): In function `quorem':
dtoa.c:(.text+0x3c): …
Run Code Online (Sandbox Code Playgroud)

linker arm gnu-toolchain codesourcery

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