VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

VFP EXE¤¤·½¤å¥óªº¤ÀÖúâªk

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
¦æªÌ孙



µù¥U®É¶¡: 2006-03-11
¤å³¹: 43


²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤Q¤G¤ë 11, 2006 4:41 pm    ¤å³¹¥DÃD: VFP EXE¤¤·½¤å¥óªº¤ÀÖúâªk ¤Þ¨¥¦^ÂÐ

VFP编译¥Í¦¨¦ZªºEXE¤å¥ó°ò¥»结ÌÛ为 EXE头¡ÏAPP¤å¥ó¡Ï¤å¥ó§À¡A¨ä¤¤©Ò¦³­ì©l¥N码³£¦bAPP¤å¥ó¤¤

©Ò¥H¤Ï编译软¥ó³£¬O¥ý§ä¨ìEXE¤å¥ó¤¤ªº¨º个标­ãªºAPP¤å¥ó¦A进¦æ¤å¥ó¤ÀÖäu§@¡A³Ì¦Z¦b§â±o¨ìªº伪¥N码

转换为调试«H®§¡]§Y·½码¡^

闲来无¨Æ¡A¤]写¤F个¤ÀÖÃAPP¤å¥ó¤¤·½¤å¥óªº¥N码¡A¦ý没«ç¤\测试¡I

* ¨ç 数 ¦W¡GUNCOMPIAPP()
* ¥\¡@ ¯à¡G®ÚÕu¤@个标­ãªºVFP APP¤å¥ó¤ÀÖÃ¥X·½¤å¥ó
* 参¡@ 数¡GAPPFILENAME ³Q¤ÀÖêºAPP¤å¥ó¦W
* ªð ¦^¡GAPP¤å¥óªº·½¤å¥ó
* ºâªk¨î§@¡G¦æªÌ孙(QQ:310727570)-VFP应¥Îµ{¦¡ºâªk¸s(12787940)


Function UNCOMPIAPP(APPFILENAME As String )
ON EROR MESSAGEBOX('¤ÀÖÃ¥¢败','«H®§´£¥Ü')
HWND=FOPEN(APPFILENAME)
FSEEK(HWND,5)
st=FREAD(HWND,2)
st=RIGHT(st,1)+left(st,1)
st='0x'+STRCONV(st,15)
F_COUNT=&st
DIMENSION F_LIST[F_COUNT]
DIMENSION DZ1[F_COUNT]
DIMENSION DZ2[F_COUNT]
FSEEK(HWND,13)
BS6=FREAD(HWND,4)
FSEEK(HWND,17)
BS8=FREAD(HWND,4)
FSEEK(HWND,9)
BS5=FREAD(HWND,4)
LDZ=''
LCD=''
GDZ=''
FOR i=4 TO 1 STEP -1
LDZ=LDZ+STRCONV(SUBSTR(BS6,i,1),15 )
LCD=LCD+STRCONV(SUBSTR(BS8,i,1),15 )
GDZ=GDZ+STRCONV(SUBSTR(BS5,i,1),15 )
endf
LDZ='0x'+LDZ
LCD='0x'+LCD
GDZ='0x'+GDZ
FSEEK(HWND,&LDZ)
st=CHR(0)+FREAD(HWND,&LCD)+CHR(0)
k=0
FOR i=1 TO OCCURS(CHR(0),st)
flist=SUBSTR(st,AT(CHR(0),st,i)+1,AT(CHR(0),st,i+1)-AT(CHR(0),st,i))
IF LEN(JUSTFNAME(flist))>0 .AND. AT('.PRG',UPPER(JUSTFNAME(flist)))=0
k=k+1
F_LIST[k]=JUSTFNAME(flist)
endi
endf
FOR i=1 TO F_COUNT
st1=SUBSTR(FREAD(HWND,25),2,8 )
st2=''
FOR k=8 TO 1 STEP -1
st2=st2+SUBSTR(st1,k,1 )
endf
st2=STRCONV(st2,15)
fdz1='0x'+SUBSTR(st2,1,8 )
fdz2='0x'+SUBSTR(st2,9,8 )
DZ1[i]=&fdz1
DZ2[i]=&fdz2
endf
FOR i=1 TO F_COUNT
FSEEK(HWND,DZ2[i])
f_word=FREAD(HWND,DZ1[i]-DZ2[i])
STRTOFILE(f_word,F_LIST[i])
endf
FCLOSE(HWND)
st=''
FOR i=1 TO F_COUNT
st=st+F_LIST[i]+','
IF i=F_COUNT
st=st+F_LIST[i]
endi
endf
***¤å¥ó¤ÀÖÃ结§ô****

从EXE¤¤¤ÀÖÃ¥XAPP¤]«Ü简单¡A§â«ü针²¾动¨ì0x5e00§â¦¹处¨ì¤å¥ó§Àªº¥þ³¡内®e读¥X来¦A¥h±¼³Ì¦Z14个¦r节´N¬O¤@个标­ãªºAPP¤å¥ó¡C

_________________
¢~⌒¢¡VFP应¥Îµ{¦¡ºâªk¸s 12787940¤¢~⌒
¢~http://hi.baidu.com/myvfp/blog
,¡`¡`¡`¡`,""¡`~~ ,""~¡`¡`¡@ ,""
¢¬¢ª¢i¢©¡@¢¬¢ª¢i¢©
¡W¥Ð¡W¥Ð¡W¡W¥Ð¡W¥Ð¡W
ùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùáùá

http://hi.baidu.com/myvfp/blog
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
suenwingfat



µù¥U®É¶¡: 2003-06-17
¤å³¹: 13


²Ä 2 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤Q¤G¤ë 12, 2006 11:24 am    ¤å³¹¥DÃD: µ{§Ç¦n¹³¦³°ÝÃD ¤Þ¨¥¦^ÂÐ

²Ä¤G¦æ À³¬O on error

¦ý§ó¥¿«á¤´¦³°ÝÃD

¦]¬° st='x0000'
©Ò¥H f_count=0
¥H¦Ü
DIMENSION F_LIST[F_COUNT]
DIMENSION DZ1[F_COUNT]
DIMENSION DZ2[F_COUNT]
¥X²{ Erro
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@