经过大量时间与Google合作,我决定在这里提出这个问题.但我无法得到我的问题的答案.以下是详细信息:
我有一个申请并最近发布到Cydia.它已被其他人破解并在torrent网站上发布.有趣的是我内部有一个二进制校验和验证机制,他们能够破解整个东西,并根据他们对二进制文件所做的更改创建了新的校验和文件.他们编辑了两个函数并对其进行反编译并将其发布给种子.
所以我已经用IDA Pro做了一些研究,发现可以看到函数和类的实际实现.但是为了编辑函数,他们必须找到该函数的地址并通过HEX EDITOR编辑它.这部分让我感到困惑,是否有人帮我这个?我不想让它"不可撼动":) ..我猜不是那么容易.:)但我真的想知道他们是如何破解的?:)
我的问题是如何编辑iOS二进制文件中的函数并重新编译它?例如,我的一个班级中有以下方法.
- (id) getSomething {
return @"Something";
}
Run Code Online (Sandbox Code Playgroud)
我想编辑这个函数的返回值.那可能吗?
我正在进行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) 我一直在使用C和C++,当涉及到文件处理时,我感到困惑.让我说出我所知道的事情.
在C中,我们使用函数:
我知道何时使用这些功能(希望我没有错过任何重要的事情).
在C++中,我们使用函数/运算符:
那么(推荐)可以在C++中使用C兼容的文件操作吗?哪个更广泛使用,为什么?除了这些我还应该注意什么?
我有一个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
我发现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及其所有参数,我很感激.
是否可以获得任何已安装的Android应用程序的清单权限?
我可以跟踪Android设备的整体和每个应用程序(应用程序)带宽使用情况android.net.TrafficStats.但是,uid可以执行多个二进制文件来调用多个进程.
我想知道是否有任何方法或方法来获取每个进程的带宽使用,以便我可以追溯启动连接到Internet的二进制文件.
我有一个从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做得更好
我正在尝试打印一个简单的长双,但它不起作用
我尝试了什么:
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) 如果有人能解释为什么这两个文件不存在,我将不胜感激?Android内核的虚拟内存空间和物理空间如何没有2个文件?
编辑:我有Android 2.3.7(Cyanogen mod),2个文件不存在:

Edit2:我检查过运行ICS的三星Galaxy S3,存在2个文件
我有一个与 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 中列出动态库 .so 文件的所有符号的应用程序。我想问一下有没有预编译的nm for Android 或者至少有nm 的源代码,这样我就可以自己编译了。
我想在我的一个函数中使用标准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) android ×6
ios ×3
android-ndk ×2
c ×2
ida ×2
64-bit ×1
arm ×1
assembly ×1
c++ ×1
codesourcery ×1
facebook ×1
file ×1
file-io ×1
linker ×1
linux ×1
linux-kernel ×1
long-double ×1
manifest ×1
objective-c ×1
ocr ×1
otool ×1
permissions ×1
sqlite ×1
swift ×1
toolchain ×1
unity5 ×1
xcode ×1