能力值:
( LV2,RANK:10 )
|
-
-
2 楼
没人帮忙一下吗,希望有人帮忙一下,帮我将这段伪代码翻译成C++代码
|
能力值:
( LV17,RANK:1185 )
|
-
-
3 楼
dword_B14070是全局数组
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
非常感谢,我大概弄懂了这个函数的逻辑。dword_B14070是个全局数组,大小为为1086字节,调用sub_500DF4()对这个数组初始化。 void sub_500DF4() { int v0; // r4 unsigned int v1; // r1 int v2; // r5 unsigned int v3; // r1 unsigned int v4; // r7 int v5; // r5
v0 = (unsigned __int8)byte_B15470; if ( !byte_B15470 ) { v1 = 1048577; do { v2 = 0; do { v3 = (125 * v1 + 3) % 0x2AAAAB; v4 = v3; v1 = (125 * v3 + 3) % 0x2AAAAB; *(_DWORD *)((char *)dword_B14070 + v0 + v2) = (unsigned __int16)v1 | (v4 << 16); v2 += 1024; } while ( v2 != 5120 ); v0 += 4; } while ( v0 != 1024 ); byte_B15470 = 1; v5 = dword_AF9F1C; dword_AF9F1C = getHashCode("xyqpocket", 1u) ^ v5; } } 跳转到byte_B15470(是不是偏移地址b15470处)里IDA是个%1,这个是什么意思。跳转到dword_b14070,内容是这样的 bss:00B14070 ; _DWORD dword_B14070[1086] .bss:00B14070 dword_B14070 % 0x10F8 ; DATA XREF: getHashCode(char const*,uint)+14↑o .bss:00B14070 ; .text:off_500DF0↑o ...
这个%1和% 0x10F8 是什么意思。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
holing
dword_B14070是全局数组
对于fastcall的so库里函数,可以编程直接调用吗。如果可以,我不需要自己翻译这个伪代码,直接调用so库里的这个函数就可以了。但在网上找来找去,没发现fastcall调用约定的方法函数的动态库怎么调用。
|
能力值:
( LV9,RANK:280 )
|
-
-
6 楼
huangxubang
对于fastcall的so库里函数,可以编程直接调用吗。如果可以,我不需要自己翻译这个伪代码,直接调用so库里的这个函数就可以了。但在网上找来找去,没发现fastcall调用约定的方法函数的动态库怎么 ...
处理器架构一致就可以直接调用,不一致需要用模拟器,看你发的应该是ARM架构的代码吧,如果你要在x86的cpu上调用你需要找个支持跑arm代码的模拟器
最后于 2018-10-30 12:47
被hzqst编辑
,原因:
|
能力值:
( LV17,RANK:1185 )
|
-
-
7 楼
huangxubang
对于fastcall的so库里函数,可以编程直接调用吗。如果可以,我不需要自己翻译这个伪代码,直接调用so库里的这个函数就可以了。但在网上找来找去,没发现fastcall调用约定的方法函数的动态库怎么 ...
直接用应该可以,一般默认都是fastcall,实在不行自己写个嵌入式汇编封装一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢。好久没来看雪了,忘了说,问题已经解决了。
|
|
|