能力值:
( LV2,RANK:10 )
|
-
-
2 楼
真的没有人能帮忙吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
帮帮忙啊 ,高手们。
|
能力值:
( LV9,RANK:530 )
|
-
-
4 楼
除了用重定位表, 还可以这样。
PUSHA
CALL NEXT
NEXT: POP EBP
MOV EDI, EBP
ADD EDI, XXXX
OR ECX FFFFFFFF
XOR EAX, EAX
REPNZ SCASB
NOT ECX
...
POPA
实际上也是重定位, 病毒与壳常这样
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我是一个新手,如果我直接想修改那个DLL,CALL NEXT这个语句中的NEXT这个标签应该怎么实现呢
|
能力值:
( LV9,RANK:180 )
|
-
-
6 楼
直接说出你想做什么, 可能人家的回答会比较贴切.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我想在一个DLL文件的数据段加一个字符串,然后在这个DLL里面加一段代码引用这个字符串,现在问题就是我不知道怎样引用这个字符串,因为这个DLL要被动态调用,每次字符串的地址都不一样。
|
能力值:
( LV9,RANK:180 )
|
-
-
8 楼
你没有说明此DLL是只有你在用还是别支程序也会用.
我猜你是要硬编写入到 .DLL , 那也就没什么差别了.
即然 DLL 是固定的一支程序, 那就很好办了.
下列是一种方法:
(你好像有足够的空间写Code, 没的话就增加一个Section吧)
综合你上列问到的问题点, 我猜你应该是要:
原版只是:
000040300 call 00411111
你新版欲改为
000040300 call 00422222
00422222: 处理 MyString <- 你写的 Code
ret
00503FE0: 'ABCDEFGHIJ',0 <- 你放的 MyString
call 00411111 改成 call 00422222 可硬编写入, 前提是你要会计算.
你现在的难题应该是 [处理 MyString], 因为你要参考到 'ABCDE....'
[处理 MyString]里面你可用下列方法参考到 MyString:
call $+5
pop edi
add edi, 00503FE0 - ($-1)
亦即 add edi,xxxxxxxx 同样的这个值你要事先算好
xxxxxxxx = MyString的位址 - pop edi这指令的位址
如此 edi 就指向 'ABCDE...' 了
一句话, 絶对参考改成相对参考就是了
若你不是要硬编, 而是要你的 EXE 载入 DLL 后, 去改 DLL 的内存
那就当我没讲. 方法不太一样.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
学习ing 不错!
|
|
|