能力值:
( LV4,RANK:50 )
|
-
-
2 楼
壳处理IAT的时候,会转换API的代码到壳的空间,你需要改变这个地方令壳把API的正确地址放入到引入表中
|
能力值:
( LV9,RANK:3410 )
|
-
-
3 楼
这种情况很少见,但的确有
|
能力值:
( LV9,RANK:1060 )
|
-
-
4 楼
最初由 采臣・宁 发布 壳处理IAT的时候,会转换API的代码到壳的空间,你需要改变这个地方令壳把API的正确地址放入到引入表中
我已经找到了调用API的地址,并把正确的API地址放到了输入表中
只是4010D3 CALL [<&KERNEL32.GetCommandLineA>]的下面一句
4010D9 MOV ESI,EAX好像也被放到了壳中执行
从壳中返回来时直接到了004010DB MOV AL,BYTE PTR DS:[EAX]
程序中有大概十几个Call API会这样。
也就是修负复Call API 时,还要修复Call API的下面一行代码。难道要一个一个手动修复。
|
能力值:
( LV8,RANK:130 )
|
-
-
5 楼
这个问题值得研究
|
能力值:
( LV9,RANK:250 )
|
-
-
6 楼
最初由 wenglingok 发布
我已经找到了调用API的地址,并把正确的API地址放到了输入表中
只是4010D3 CALL [<&KERNEL32.GetCommandLineA>]的下面一句
........
偷 code,一定有解瘁的公式,或是有一?,?照表,??原,本?的 code
F7-->咄入 CALL XXXXXXXX,??可以找到,
下一行的 CODE,??在 RUN 完 GetCommandLineA 之後
哕行,比蒉麻?的是,原? CODE ,是否有?型??
?必?先?原CODE 後,在?入原? CODE
可以?一patch ,作?原的工作,手??原,是下下策....
|
能力值:
( LV9,RANK:1060 )
|
-
-
7 楼
这个调用GetCommandLineA,还是在系统Dll的空间,没有把它搬到壳空间执行
我看了一下返回结果,我电脑上返回141EE0
从DLL返回EAX=141EE0后,到ESI=141EE0,tc esi==141EE0,共执行了1800多句代码,然后就返回到4010DB了,程序不是简单的直接MOV,也是加密处理的
大概是这样:
push eax ;eax==141EE0
……………………
省略1800多的代码
pop esi ;这句过后第一次 esi==141EE0
我加壳的记事本看了一下,有十几的地方是这样的。我也跟过其他的地方
发现从系统DLL返回来到的不是同一个地方。
要跟出解码公式也不容易
|
|
|