@hallever wrote:
这是一个unity游戏, 它用了best http lib
然后unity 的mono把c#代码转化成了c/c++ function
先贴ida_HTTPRequest_get_RawData_m1733053415 LDR X0, [X0,#0x78] RET End of function _HTTPRequestget_RawData_m1733053415 _HTTPRequest_set_RawData_m3901754572 STR X1, [X0,#0x78] RET End of function _HTTPRequest_set_RawData_m3901754572
看起来很简单,只是把X0存起来了
C#原始代码例子是这样的HTTPRequest request = new HTTPRequest(new Uri("http://server.com/path"), HTTPMethods.Post, OnRequestFinished); **request.RawData = Encoding.UTF8.GetBytes("Field Value");** request.Send();
看起来一组Bytes类型的数据被传到了RawData里,但是我试过 unsigned char* 并不能正确的显示出data
下面是我的hookvoid (*orig_testFunc)(const unsigned char *a); void hook_testFunc(const unsigned char *a) { // our replacement of CFShow() NSLog(@"====Calling setRawData a = %p\n", &a); //output:====Calling setRawData a = 0x16fd48918 printf_ByteArray(a, 30); //output: ====printRes= 209172410100000000000000000000000000000000000000000000000000 orig_testFunc(a); // calls the original function }
printf_ByteArray只是尝试显示16进制的数据
也可能我找的function位置不对,也可能是我不知道正确的方法显示这个数据类型。
我的目标是显示setRawData 中的参数。
谢谢。
Posts: 3
Participants: 2