Project现在在github上,这是我的问题的链接
我成功地编译了整个事情并且能够分别运行拒绝者和拒绝者.但是,当向目标进程注入代码时,注入器将使注入器崩溃.
mach_inject_test_injectee.app 's standard output:
mach error on bundle load (os/kern) successful
mach error on bundle load (os/kern) successful
mach error on bundle load (os/kern) successful
mach error on bundle load (os/kern) successful
mach error on bundle load (os/kern) successful
FS rep /Users/Malic/Documents/Code/c/mach_star/mach_inject_test/build/Development/mach_inject_test_injector.app/Contents/Resources/mach_inject_test_injected.bundle/Contents/MacOS/mach_inject_test_injected
LOADDDDDDDDDD!
Assertion failed: (0), function +[injected_PrincipalClass load], file /Users/Malic/Documents/Code/c/mach_star/mach_inject_test/injected-PrincipalClass.m, line 25.
Abort trap
Run Code Online (Sandbox Code Playgroud)
mach_inject_test_injector的标准输出
injecting into pid 3680
injecting pid
mach_inject failing.. (os/kern) successful
mach inject done? 0
hi
Run Code Online (Sandbox Code Playgroud)
从输出看来,注射器没有通知注射器,任何想法?谢谢.
我想知道当我调用一个客观的C方法时,目标C运行时如何处理参数
[NSString stringWithFomat:@"%@, %@", @"Hello", @"World"]
Run Code Online (Sandbox Code Playgroud)
这个目标C调用有三个参数,与ARM系统上的典型方法相比,它是如何工作的.我知道寄存器r0,r1,r2,r3会保存前4个参数,还有其他参数怎么样?它是如何将它们放在堆栈中并在以后弹出它们的?
compiler-construction iphone assembly arm calling-convention
我需要在网页上获取一些结果,它使用一些JavaScript代码来生成我感兴趣的部分,如下所示
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--)d[c]=k[c]||c;k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('5 11=17;5 12=["/3/2/1/0/13.4","/3/2/1/0/15.4","/3/2/1/0/14.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/10.4","/3/2/1/0/9.4","/3/2/1/0/23.4","/3/2/1/0/22.4","/3/2/1/0/24.4","/3/2/1/0/26.4","/3/2/1/0/25.4","/3/2/1/0/18.4","/3/2/1/0/16.4","/3/2/1/0/19.4","/3/2/1/0/21.4"];5 20=0;',10,27,'40769|54|Images|Files|png|var|imanhua_005_140430179|imanhua_004_140430179|imanhua_006_140430226|imanhua_008_140430242|imanhua_007_140430226|len|pic|imanhua_001_140429664|imanhua_003_140430117|imanhua_002_140430070|imanhua_015_140430414||imanhua_014_140430382|imanhua_016_140430414|sid|imanhua_017_140430429|imanhua_010_140430289|imanhua_009_140430242|imanhua_011_140430367|imanhua_013_140430382|imanhua_012_140430367'.split('|'),0,{}))
Run Code Online (Sandbox Code Playgroud)
结果eval()对我来说很有价值,我正在编写一个Python脚本,是否有任何库可以用来虚拟运行这段JavaScript代码并获得输出?
谢谢
另外,该程序在运行Linux的arm设备上运行,我可以打印出堆栈信息并在我指定的sig-seg处理程序中注册值.问题是我无法在源文件中添加-g选项,因为由于性能降级,错误可能无法重现.
我想我没有在标题中说得对。我打算做的是挂钩一些系统api,就像每次都会发生时间中断(这是操作系统中的每个应用程序解释时间的方式),并使应用程序对该api的调用返回一些更大/更小的结果。所以从应用的角度来看,时间有加速或减速的趋势。我在 Windows 上发现了一些应用程序这样做,谁能给我一些关于如何在 Mac OS X 上实现它的指示?
我知道如果你在Mac OS的源代码中定义了一堆@""NSString对象.这些NSStrings将存储在Mach-O库中的一个段中.
Section
sectname __ustring
segname __TEXT
addr 0x000b3b54
size 0x000001b7
offset 731988
align 2^1 (2)
reloff 0
nreloc 0
flags 0x00000000
reserved1 0
reserved2 0
Run Code Online (Sandbox Code Playgroud)
如果我十六进制转储二进制文件,它们将一个接一个地与0x0000as分隔符紧密对齐.我想知道的是,当程序运行时,Mac OS X中的加载程序如何加载这些NSStrings?是否通过识别0x0000分隔符来简单地加载它们,或者这些是二进制文件中其他地方的字符串偏移表,指向单独的NSString对象?谢谢.
(我真正想要做的是增加一个NSString的长度,所以我必须知道加载器如何识别这些单独的对象)
补充:我知道如果在代码中定义类似@"abc"的CStrings,它将转到cstring段.如果它是一个像@"""这样的字符串,除了ascii字符,它将根据我的挖掘进入ustring部分.
由于红色/蓝色发光横幅将阻挡相当多的界面.http://d.pr/SfgW
根据新的iOS HID,需要1024*1024 app图标
我是否需要包含它以及如何命名文件?
我想使用以下代码登录到以下列方式返回其cookie信息的网站:
Set-Cookie: 19231234
Set-Cookie: u2am1342340
Set-Cookie: owwjera
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码登录该站点,但最后的print语句不会输出任何有关"set-cookie"的内容.在Snow leopard上,库似乎会自动为此站点获取cookie,之后发送的连接将使用正确的"cookie"标头设置.但是在leopard上,它不会那样工作,那么触发这个"记住某个根URL的cookie"行为?
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:uurl]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"keep-live" forHTTPHeaderField:@"Connection"];
[request setValue:@"300" forHTTPHeaderField:@"Keep-Alive"];
[request setHTTPShouldHandleCookies:YES];
[request setHTTPBody:postData];
[request setTimeoutInterval:10.0];
NSData *urlData;
NSHTTPURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSLog(@"response dictionary %@",[response allHeaderFields]);
Run Code Online (Sandbox Code Playgroud) 代码如下所示,我想知道在结尾部分
0000e0b4 001d22d0 ldrsbeq r2, [sp], -r0
Run Code Online (Sandbox Code Playgroud)
这是否为这行代码进行计算,因为它加载了结束部分中定义的地址
0000e03c e59f4070 ldr r4, [pc, #112] ; 0xe0b4
Run Code Online (Sandbox Code Playgroud)
为什么代码以这种方式组织?
-[Cube message1]:
0000e02c e92d40f0 push {r4, r5, r6, r7, lr}
0000e030 e28d700c add r7, sp, #12 ; 0xc
0000e034 e24dd008 sub sp, sp, #8 ; 0x8
0000e038 e59f1070 ldr r1, [pc, #112] ; 0xe0b0
0000e03c e59f4070 ldr r4, [pc, #112] ; 0xe0b4
0000e040 e1a06000 mov r6, r0
0000e044 e591e000 ldr lr, [r1]
0000e048 e5941000 ldr r1, [r4]
0000e04c e59e5000 ldr r5, [lr]
0000e050 …Run Code Online (Sandbox Code Playgroud)