2010-06-08 117 views
-2

我爱我的Delphi 4,但同时我发现需要与windows交谈.net 这是我在sourceforge.net/上找到的一个重新编译的dll项目/ delphinet /(DelphiNet03.zip)由一些很好的人资助的DLL从一些人。 真正的答案是让这个DLL,以适应Delphi为真正的Delphi代码,而不是一个DLL文件夹。所以我们可以在Delphi中创建使用dot net的对象。因为我不是一个集会怪物,所以我有一点小小的惊讶,希望得到帮助!在delphi 4中反编译* .DLL到.net的程序集

1 /如何链接asm代码与此代码底部的数据信息。有人能告诉我哪些呼叫寻找使这个链接到数据。 2 /我需要找到所有过程和函数的开头,但是我找不到'RET'语句。这段代码中的开始语句是什么? 3 /如何识别人的跳转语句去,把它们放进德尔福格式 在这段代码看起来我能做到: -

  jle 402890h  \\1000:00402854 7e3a    
     add [eax], al  \\1000:00402856 0000    
…………………………………………….. 
     or  ch, [edi+3eh]  \\1000:0040288d 0a6f3e   
         xrefs first: 1000:00402854 number : 1  \\;        
     add [eax], al  \\1000:00402890 0000    

// *********** ******************************************

  jle @@21  \\1000:00402854 7e3a    
     add [eax], al  \\1000:00402856 0000    
…………………………………………….. 
     or  ch, [edi+3eh]  \\1000:0040288d 0a6f3e   
         xrefs first: 1000:00402854 number : 1  \\;        

@@ 21 add [eax],al \ 1000:00402890 0000

这是正确的转换。 我觉得 外部参照第一:1000:004021d1数:1 是最好遵循

4 /我需要高达8086汇编代码的一个很好的参考,我可以打印出来,并得到好好学学。

我发现这个asm分解器的http://www.cronos.cc/是如此类似于 德尔福,它只需要多一点转换,以获得它进入Delphi asm我认为。 我只花了3个小时将文件放入TMemo,并写了几行在流中切出一行并重新加载备忘录。

     xrefs first: 1000:004041ae number : 1  \\;        
     dd  4190h  \\1000:00402000 90410000   
     dd  00h  \\1000:00402004 00000000   
     dec eax  \\1000:00402008 48    
     add [eax], al  \\1000:00402009 0000    
     add [edx], al  \\1000:0040200b 0002    
     add [eax], al  \\1000:0040200d 0000    
     add [eax-2bffffd2h], al  \\1000:0040200f 00802e0000d4  
     adc al, [eax]  \\1000:00402015 1200    
     add [ecx], al  \\1000:00402017 0001    
     add [eax], al  \\1000:00402019 0000    
     add [eax], al  \\1000:0040201b 0000    
     add [eax], al  \\1000:0040201d 0000    
     add [eax], al  \\1000:0040201f 0000    
     add [eax], al  \\1000:00402021 0000    
     add [eax], al  \\1000:00402023 0000    
     add [eax], al  \\1000:00402025 0000    
     add [eax], al  \\1000:00402027 0000    
     add [eax], al  \\1000:00402029 0000    
     add [eax], al  \\1000:0040202b 0000    
     add [eax], al  \\1000:0040202d 0000    
     add [eax], al  \\1000:0040202f 0000    
     add [eax], al  \\1000:00402031 0000    
     add [eax], al  \\1000:00402033 0000    
     add [eax], al  \\1000:00402035 0000    
     add [eax], al  \\1000:00402037 0000    
     add [eax], al  \\1000:00402039 0000    
     add [eax], al  \\1000:0040203b 0000    
     add [eax], al  \\1000:0040203d 0000    
     add [eax], al  \\1000:0040203f 0000    
     add [eax], al  \\1000:00402041 0000    
     add [eax], al  \\1000:00402043 0000    
     add [eax], al  \\1000:00402045 0000    
     add [eax], al  \\1000:00402047 0000    
     add [eax], al  \\1000:00402049 0000    
     add [eax], al  \\1000:0040204b 0000    
     add [eax], al  \\1000:0040204d 0000    
     add [ebx], dl  \\1000:0040204f 0013    
     xor [eax+eax], al  \\1000:00402051 300400   
     or  al, [ecx]  \\1000:00402054 0a01    
     add [eax], al  \\1000:00402056 0000    
     add [eax], eax  \\1000:00402058 0100    
     add [ecx], dl  \\1000:0040205a 0011    
     push cs  \\1000:0040205c 0e    
     add al, 50h  \\1000:0040205d 0450    
     mov gs, [ecx+05h]  \\1000:0040205f 8e6905   
     push eax  \\1000:00402062 50    
     mov gs, [ecx+2eh]  \\1000:00402063 8e692e   
     add eax, f938h  \\1000:00402066 0538f90000  
     add [ebx], al  \\1000:0040206b 0003    
     jc  402070h  \\1000:0040206d 7201    
     add [eax], al  \\1000:0040206f 0000    
     jo  40209bh  \\1000:00402071 7028    
     add al, [eax]  \\1000:00402073 0200    
     add [edx], cl  \\1000:00402075 000a    
     sub eax, 36f0408h  \\1000:00402077 2d08046f03  
     add [eax], al  \\1000:0040207c 0000    
     or  ch, [ebx]  \\1000:0040207e 0a2b    
     push es  \\1000:00402080 06    
     add al, 6fh  \\1000:00402081 046f    
     add al, 00h  \\1000:00402083 0400    
     add [edx], cl  \\1000:00402085 000a    
     adc eax, [edi]  \\1000:00402087 1307    
     push ss  \\1000:00402089 16    
     adc ecx, [eax]  \\1000:0040208a 1308    
     cmp cl, cl  \\1000:0040208c 38c9    
     add [eax], al  \\1000:0040208e 0000    
     add [ecx], dl  \\1000:00402090 0011    
     pop es  \\1000:00402092 07    
     adc [eax], ecx  \\1000:00402093 1108    
     callf 056f:060a9a08h  \\1000:00402095 9a0a066f05  
     add [eax], al  \\1000:0040209a 0000    
     or  cl, [ebx]  \\1000:0040209c 0a0b    
     push es  \\1000:0040209e 06    
     outsd   \\1000:0040209f 6f    
     push es  \\1000:004020a0 06    
     add [eax], al  \\1000:004020a1 0000    
     or  al, [ebx]  \\1000:004020a3 0a03    
     sub [edx], al  \\1000:004020a5 2802    
     add [eax], al  \\1000:004020a7 0000    
     or  bh, [ecx]  \\1000:004020a9 0a39    
     movsd   \\1000:004020ab a5    
     add [eax], al  \\1000:004020ac 0000    
     add [edi], al  \\1000:004020ae 0007    
     mov gs, [ecx+0eh]  \\1000:004020b0 8e690e   
     add al, 50h  \\1000:004020b3 0450    
     mov gs, [ecx+40h]  \\1000:004020b5 8e6940   
     cwde   \\1000:004020b8 98    
     add [eax], al  \\1000:004020b9 0000    
     add [edi], dl  \\1000:004020bb 0017    
     or  al, 16h  \\1000:004020bd 0c16    
     or  eax, 9072b2bh  \\1000:004020bf 0d2b2b0709  
     callf 0000:076f9a09h  \\1000:004020c4 9a6f070000  
     or  ch, [edi+08h]  \\1000:004020c9 0a6f08   
     add [eax], al  \\1000:004020cc 0000    
     or  ch, [eax+ebx]  \\1000:004020ce 0a2c18   
     push cs  \\1000:004020d1 0e    
     add al, 50h  \\1000:004020d2 0450    
     or  [edx+d72h], ebx  \\1000:004020d4 099a720d0000  
     jo  402104h  \\1000:004020da 7028    
     or  [eax], eax  \\1000:004020dc 0900    
     add [edx], cl  \\1000:004020de 000a    
     add dl, cs:[esi]  \\1000:004020e0 2e0216   
     or  al, 08h  \\1000:004020e3 0c08    
     sub eax, 90c2b02h  \\1000:004020e5 2d022b0c09  
     pop ss  \\1000:004020ea 17    
     pop eax  \\1000:004020eb 58    
     or  eax, 50040e09h  \\1000:004020ec 0d090e0450  
     mov gs, [ecx+32h]  \\1000:004020f1 8e6932   
     int 08h  \\1000:004020f4 cd08    
     sub al, 5ch  \\1000:004020f6 2c5c    
     push ss  \\1000:004020f8 16    
     adc eax, [ebx+ebp]  \\1000:004020f9 13042b   
     dec esi  \\1000:004020fc 4e    
     push cs  \\1000:004020fd 0e    
     add al, 50h  \\1000:004020fe 0450    
     adc [edx+ebx*4], eax  \\1000:00402100 11049a   
     jc  402112h  \\1000:00402103 720d    
     add [eax], al  \\1000:00402105 0000    
     jo  402131h  \\1000:00402107 7028    
     or  [eax], eax  \\1000:00402109 0900    
     add [edx], cl  \\1000:0040210b 000a    
     xor esi, [esi]  \\1000:0040210d 3336    
     pop es  \\1000:0040210f 07    
     adc [edx+ebx*4], eax  \\1000:00402110 11049a   
     outsd   \\1000:00402113 6f    
     pop es  \\1000:00402114 07    
     add [eax], al  \\1000:00402115 0000    
     or  ch, [edi+0ah]  \\1000:00402117 0a6f0a   
     add [eax], al  \\1000:0040211a 0000    
     or  dl, [ebx]  \\1000:0040211c 0a13    
     push es  \\1000:0040211e 06    
     add eax, 9a041150h  \\1000:0040211f 055011049a  
     sub [ebx], cl  \\1000:00402124 280b    
     add [eax], al  \\1000:00402126 0000    
     or  dl, [edx]  \\1000:00402128 0a12    
     push es  \\1000:0040212a 06    
     adc al, [c28h]  \\1000:0040212b 1205280c0000  
         xrefs first: 1000:00402107 number : 1  \\;        
     or  ch, [edx+eax]  \\1000:00402131 0a2c02   
     sub ebx, [esi]  \\1000:00402134 2b1e    
     push cs  \\1000:00402136 0e    
     add al, 50h  \\1000:00402137 0450    
     adc [edi+eax], eax  \\1000:00402139 110407   
     adc [edx+ebx*4], eax  \\1000:0040213c 11049a   
     outsd   \\1000:0040213f 6f    
     pop es  \\1000:00402140 07    
     add [eax], al  \\1000:00402141 0000    
     or  ah, [edx+58170411h]  \\1000:00402143 0aa211041758  
     adc eax, [ecx+edx]  \\1000:00402149 130411   
     add al, 0eh  \\1000:0040214c 040e    
     add al, 50h  \\1000:0040214e 0450    
     mov gs, [ecx+32h]  \\1000:00402150 8e6932   
     test eax, 58170811h  \\1000:00402153 a911081758  
     adc ecx, [eax]  \\1000:00402158 1308    
     adc [eax], ecx  \\1000:0040215a 1108    
     adc [edi], eax  \\1000:0040215c 1107    
     mov gs, [ecx+3fh]  \\1000:0040215e 8e693f   
     sub al, ffh  \\1000:00402161 2cff    
     db  ff  \\1000:00402163 ff    
     jmp [edx]  \\1000:00402164 ff2a    
     add [eax], al  \\1000:00402166 0000    
     adc esi, [eax]  \\1000:00402168 1330    
     add eax, 8100h  \\1000:0040216a 0500810000  
     add [edx], al  \\1000:0040216f 0002    
     add [eax], al  \\1000:00402171 0000    
     adc [edx+esi*2], eax  \\1000:00402173 110472   
     xor eax, [eax]  \\1000:00402176 3300    
     add [eax+28h], dh  \\1000:00402178 007028   
     add al, [eax]  \\1000:0040217b 0200    
     add [edx], cl  \\1000:0040217d 000a    
     sub al, 09h  \\1000:0040217f 2c09    
     add ebp, [eax]  \\1000:00402181 0328    
     or  eax, a0a0000h  \\1000:00402183 0d00000a0a  
     sub eax, [edi]  \\1000:00402188 2b07    
     add al, 28h  \\1000:0040218a 0428    
     push cs  \\1000:0040218c 0e    
     add [eax], al  \\1000:0040218d 0000    
     or  cl, [edx]  \\1000:0040218f 0a0a    
     push es  \\1000:00402191 06    
     add eax, f6f1717h  \\1000:00402192 0517176f0f  
     add [eax], al  \\1000:00402197 0000    
     or  cl, [ebx]  \\1000:00402199 0a0b    
     push ss  \\1000:0040219b 16    
     lea eax, [edx]  \\1000:0040219c 8d02    
     add [eax], al  \\1000:0040219e 0000    
     add [esi+ecx], ecx  \\1000:004021a0 010c0e   
     add al, 2ch  \\1000:004021a3 042c    
     push cs  \\1000:004021a5 260e    
     add al, 8eh  \\1000:004021a7 048e    
    c160d imul edi, [eax+28dh], d160c01h  \\1000:004021a9 69b88d020000010c 
     sub edx, [eax]  \\1000:004021b3 2b10    
     or  [ecx], cl  \\1000:004021b5 0809    
     push cs  \\1000:004021b7 0e    
     add al, 09h  \\1000:004021b8 0409    
     callf 0000:106f9a09h  \\1000:004021ba 9a6f100000  
     or  ah, [edx+d581709h]  \\1000:004021bf 0aa20917580d  
     or  [esi], ecx  \\1000:004021c5 090e    
     add al, 8eh  \\1000:004021c7 048e    
     imul esi, [edx], 17202e9h  \\1000:004021c9 6932e9027201  
     add [eax], al  \\1000:004021cf 0000    
     jo  4021dah  \\1000:004021d1 7007    
     db  0f  \\1000:004021d3 0f    
     add al, 12h  \\1000:004021d4 0412    
     add ch, [eax]  \\1000:004021d6 0228    
     add [eax], eax  \\1000:004021d8 0100    
         xrefs first: 1000:004021d1 number : 1  \\;        
     add [esi], al  \\1000:004021da 0006    
     pop es  \\1000:004021dc 07    
     or  [edi+11h], ch  \\1000:004021dd 086f11   
     add [eax], al  \\1000:004021e0 0000    
     or  dl, [ebx]  \\1000:004021e2 0a13    
     add al, 11h  \\1000:004021e4 0411    
     add al, 0eh  \\1000:004021e6 040e    
     add al, 6fh  \\1000:004021e8 046f    
     adc al, [eax]  \\1000:004021ea 1200    
     add [edx], cl  \\1000:004021ec 000a    
     adc eax, [511002bh]  \\1000:004021ee 13052b001105  
     sub al, [eax]  \\1000:004021f4 2a00    
     add [eax], al  \\1000:004021f6 0000    
     adc esi, [eax]  \\1000:004021f8 1330    
     add eax, 4e00h  \\1000:004021fa 05004e0000  
     add [ebx], al  \\1000:004021ff 0003    
     add [eax], al  \\1000:00402201 0000    
     adc [ebx], eax  \\1000:00402203 1103    
     outsd   \\1000:00402205 6f    
     adc [eax], al  \\1000:00402206 1000    
     add [edx], cl  \\1000:00402208 000a    
     or  al, [8db8698eh]  \\1000:0040220a 0a058e69b88d  
     add al, [eax]  \\1000:00402210 0200    
     add [ecx], al  \\1000:00402212 0001    
     or  edx, [esi]  \\1000:00402214 0b16    
     or  al, 2bh  \\1000:00402216 0c2b    
     db  0f  \\1000:00402218 0f    
     pop es  \\1000:00402219 07    
     or  [106f9a08h], al  \\1000:0040221a 0805089a6f10  
     add [eax], al  \\1000:00402220 0000    
     or  ah, [edx+c581708h]  \\1000:00402222 0aa20817580c  
     or  [eb32698eh], al  \\1000:00402228 08058e6932eb  
     add al, [esi+eax]  \\1000:0040222e 020406   
     lsl edx, [edx]  \\1000:00402231 0f0312   
     add [eax], ebp  \\1000:00402234 0128    
     add [eax], eax  \\1000:00402236 0100    
     add [esi], al  \\1000:00402238 0006    
     push es  \\1000:0040223a 06    
     add al, 07h  \\1000:0040223b 0407    
     outsd   \\1000:0040223d 6f    
     adc eax, [eax]  \\1000:0040223e 1300    
     add [edx], cl  \\1000:00402240 000a    
     or  eax, 6f050309h  \\1000:00402242 0d0903056f  
     adc al, 00h  \\1000:00402247 1400    
     add [edx], cl  \\1000:00402249 000a    
     adc eax, [ebx+ebp]  \\1000:0040224b 13042b   
     add [ecx], dl  \\1000:0040224e 0011    
     add al, 2ah  \\1000:00402250 042a    
     add [eax], al  \\1000:00402252 0000    
     adc esi, [eax]  \\1000:00402254 1330    
     add eax, 7600h  \\1000:00402256 0500760000  
     add [eax+eax], al  \\1000:0040225b 000400   
     add [ecx], dl  \\1000:0040225e 0011    
     add al, 72h  \\1000:00402260 0472    
     xor eax, [eax]  \\1000:00402262 3300    
     add [eax+28h], dh  \\1000:00402264 007028   
     add al, [eax]  \\1000:00402267 0200    
     add [edx], cl  \\1000:00402269 000a    
     sub al, 09h  \\1000:0040226b 2c09    
     add ebp, [eax]  \\1000:0040226d 0328    
     or  eax, a0a0000h  \\1000:0040226f 0d00000a0a  
     sub eax, [edi]  \\1000:00402274 2b07    
     add al, 28h  \\1000:00402276 0428    
     push cs  \\1000:00402278 0e    
     add [eax], al  \\1000:00402279 0000    
     or  cl, [edx]  \\1000:0040227b 0a0a    
     push es  \\1000:0040227d 06    
     add eax, f6f1717h  \\1000:0040227e 0517176f0f  
     add [eax], al  \\1000:00402283 0000    
     or  cl, [ebx]  \\1000:00402285 0a0b    
     push cs  \\1000:00402287 0e    
     add eax, 8db8698eh  \\1000:00402288 058e69b88d  
     add al, [eax]  \\1000:0040228d 0200    
     add [ecx], al  \\1000:0040228f 0001    
     or  al, 16h  \\1000:00402291 0c16    
     or  eax, 908102bh  \\1000:00402293 0d2b100809  
     push cs  \\1000:00402298 0e    
     add eax, 106f9a09h  \\1000:00402299 05099a6f10  
     add [eax], al  \\1000:0040229e 0000    
     or  ah, [edx+d581709h]  \\1000:004022a0 0aa20917580d  
     or  [esi], ecx  \\1000:004022a6 090e    
     add eax, e932698eh  \\1000:004022a8 058e6932e9  
     add cl, [esi]  \\1000:004022ad 020e    
     add al, 07h  \\1000:004022af 0407    
     db  0f  \\1000:004022b1 0f    
     add eax, 1280212h  \\1000:004022b2 0512022801  
     add [eax], al  \\1000:004022b7 0000    
     push es  \\1000:004022b9 06    
     pop es  \\1000:004022ba 07    
     push cs  \\1000:004022bb 0e    
     add al, 08h  \\1000:004022bc 0408    
     outsd   \\1000:004022be 6f    
     adc eax, [eax]  \\1000:004022bf 1300    
     add [edx], cl  \\1000:004022c1 000a    
     adc eax, [ecx+edx]  \\1000:004022c3 130411   
     add al, 14h  \\1000:004022c6 0414    
     push cs  \\1000:004022c8 0e    
     add eax, 146fh  \\1000:004022c9 056f140000  
     or  dl, [ebx]  \\1000:004022ce 0a13    
     add eax, 511002bh  \\1000:004022d0 052b001105  
     sub al, [eax]  \\1000:004022d5 2a00    
     add [ebx], dl  \\1000:004022d7 0013    
     xor [eax+eax], al  \\1000:004022d9 300400   
     jbe 4022deh  \\1000:004022dc 7600    
         xrefs first: 1000:004022dc number : 1  \\;        



     add fs:[esi+45h], cl  \\1000:004034fc 64004e45   
     push esp  \\1000:00403500 54    
     dec ecx  \\1000:00403501 49    
         xrefs first: 1000:004034b2 number : 1  \\;        
     outsb   \\1000:00403502 6e    
     jbe 403574h  \\1000:00403503 766f    
     imul esp, [ebp+43h], 6ch  \\1000:00403505 6b65436c   
     popad   \\1000:00403509 61    
     jnc 40357fh  \\1000:0040350a 7373    
     dec ebp  \\1000:0040350c 4d    
     jz  403578h  \\1000:0040350d 657468   
     outsd   \\1000:00403510 6f    
     add fs:[esi+45h], cl  \\1000:00403511 64004e45   
     push esp  \\1000:00403515 54    
     push ebx  \\1000:00403516 53    
     jz  40355fh  \\1000:00403517 657445   
     outsb   \\1000:0040351a 6e    
     jnz 40358ah  \\1000:0040351b 756d    
     push esi  \\1000:0040351d 56    
         xrefs first: 1000:004034b7 number : 1  \\;        
     popad   \\1000:0040351e 61    
     insb   \\1000:0040351f 6c    
     jnz 403587h  \\1000:00403520 7565    
     add [esi+45h], cl  \\1000:00403522 004e45   
     push esp  \\1000:00403525 54    
     inc edi  \\1000:00403526 47    
     db  65  ;'e'  \\1000:00403527 65    
         xrefs first: 1000:004034be number : 1  \\;        
     db  74  ;'t'  \\1000:00403528 74    
     db  50  ;'p'  \\1000:00403529 50    
     db  72  ;'r'  \\1000:0040352a 72    
     db  6f  ;'o'  \\1000:0040352b 6f    
     db  70  ;'p'  \\1000:0040352c 70    
     db  65  ;'e'  \\1000:0040352d 65    
     db  72  ;'r'  \\1000:0040352e 72    
     db  74  ;'t'  \\1000:0040352f 74    
     db  79  ;'y'  \\1000:00403530 79    
     db  00  \\1000:00403531 00    
     db  4e  ;'n'  \\1000:00403532 4e    
     db  45  ;'e'  \\1000:00403533 45    
     db  54  ;'t'  \\1000:00403534 54    
     db  47  ;'g'  \\1000:00403535 47    
     db  65  ;'e'  \\1000:00403536 65    
     db  74  ;'t'  \\1000:00403537 74    
     db  46  ;'f'  \\1000:00403538 46    
     db  69  ;'i'  \\1000:00403539 69    
     db  65  ;'e'  \\1000:0040353a 65    
     db  6c  ;'l'  \\1000:0040353b 6c    
     db  64  ;'d'  \\1000:0040353c 64    
     db  00  \\1000:0040353d 00    

不能因堆栈溢出limitions

+8

嗨Lex,欢迎来到StackOverflow。因为你是新人,所以让我向你们介绍一下我们社区的习俗。像这样一个巨大的转储将使每个人都去“TLDR”。我们倾向于倾向于使问题清晰的小而简洁的问题。由于StackOverflow是一个公开的问答库,发布一个电子邮件地址并要求将结果发送到那里与本网站的精神背道而驰。这两个问题之一可能是为什么有人投你的问题。 – 2010-06-08 05:01:13

+3

梅森的+1,因为他花时间解释了这个问题的“错误”。 对于downvoters:留下评论,描述你为什么downvote别的东西,它并不真正服务于downvote的目的... – Remko 2010-06-08 08:36:21

+0

你的问题是真正的最无法回应的,我已经看到与“德尔福”标签,但呢。 – 2010-06-08 17:18:52

回答

5

首先安装休息,你反编译的IL代码.NET的DLL生x86 32位系统装配。我的意思是,.dll中的字节不适用于32位x86,适用于.NET的VM。

其次,转换该dll是一个完全毫无意义的faraonic任务,没有人会这样做。更多,比方说,你转换的DLL,谁也将转换该.NET DLL的所有依赖关系?它缺乏意义。

三,查看CrossTalk project。它可能会帮助你。四,现在是升级你的Delphi 4或切换到FreePascal的时候了,有很多东西非常非常酷,你失踪了。

0

您知道,Win32 DLL可以通过托管的.NET代码调用。它被称为P/Invoke。用它。