能力值:
( LV6,RANK:96 )
|
-
-
2 楼
double __stdcall Proc1(int a1, int a2, double a3, double a4, int a5, int a6, double a7, int a8, int a9, int a10, int a11, int a12, int a13)
{
double result; // st7@2
int v14; // [sp+0h] [bp-8h]@1
sub_10001090(&v14);
if ( a1 )
{
result = (double)(a6 + a5) * a7 + a4;
}
else
{
v14 = a6 + a5;
result = (double)(a6 + a5) * a7 + a3;
}
return result;
}
double __stdcall Proc2(int a1, int a2, int a3, int a4, int a5, int a6, int a7, signed int a8, double a9, int a10, int a11, double a12, double a13)
{
double v13; // st7@1
double result; // st7@2
int v15; // [sp+0h] [bp-8h]@1
sub_10001090(&v15);
v13 = (double)a8 * a9;
if ( a2 )
result = a13 - v13;
else
result = a12 - v13;
return result;
}
double __stdcall Proc3(double a1, int a2, int a3, int a4, int a5, double a6, int a7, int a8, int a9, int a10, int a11, double a12, int a13, int a14, double a15, int a16, int a17)
{
double v17; // st7@1
double result; // st7@4
int v19; // [sp+0h] [bp-8h]@1
sub_10001090(&v19);
v19 = a5 + a4;
v17 = (double)(a5 + a4) * a6;
if ( a7 && a1 <= a12 && a8 > a10 )
result = v17 + a15;
else
result = v17 + a1;
return result;
}
double __stdcall Proc4(int a1, int a2, double a3, signed int a4, int a5, double a6, int a7, int a8, int a9, int a10, int a11, int a12, int a13, double a14, int a15, int a16, double a17)
{
double v17; // st7@1
double v18; // st5@1
double result; // st7@4
int v20; // [sp+0h] [bp-8h]@1
sub_10001090(&v20);
v17 = (double)a4 * a6;
v18 = a3 - v17;
if ( a7 )
{
if ( a3 < a14 || a9 <= a11 )
result = v18;
else
result = a17 - v17;
}
else
{
result = v18;
}
return result;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
高手,不至于这么快吧!跪谢了。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这是F5吧
|
能力值:
( LV13,RANK:400 )
|
-
-
5 楼
|
能力值:
( LV6,RANK:96 )
|
-
-
6 楼
楼上2位说得对,这就是F5
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
非常感谢你。
我仔细对比了,可是发现一个问题,或许值得研究一下,为什么参数不一样,另外,程序运行结果也不同。是不是dll中设置了奇怪的东西。主要就是proc4,proc3有出入。
恳请继续看看,好么?
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
这个dll是做什么的?
Metatrader?
需要注册吗?
demo有什么限制?
看了一下,里面有InitDll(HWND hWnd),你用了吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
对,看来也是高人啊。
init那个不需要用。这是看到一个ea里的dll,想了解其算法。
现在确实有点问题过不去,就是把dll直接运行,运行结果帖子中有,与汇编出来的代码有出入。
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
InitDll里面会设定很多global variables 可能会影响proc3 proc4的运算结果。你可以调试,看看initdll有没有被调用。
只是建议。可以说说是什么软件吗?谢谢。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
谢谢啊,就是metatrader软件啊。这个dll主要是学习阶段一个练手,结果第一个就遇到障碍了,郁闷。好像初始化函数确实没用过,而且我也不太会啊,可否请你也reverse一下?或者悄悄话。
|
能力值:
( LV6,RANK:96 )
|
-
-
12 楼
我错了, 我发现IDA直接F5的C源码把有些double类型的参数,转成两个int类型了.
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
不错,学习了,期待贴出最终结果。
|