设为首页收藏本站官方微博

[简单教程]解包器的分析与制作动画教程 动画A+B部分

 关闭 [复制链接]
查看: 15548|回复: 95
打印 上一主题 下一主题

[简单教程]解包器的分析与制作动画教程 动画A+B部分

跳转到指定楼层
楼主
发表于 2009-4-21 04:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

[简单教程]解包器的分析与制作动画教程 动画A+B部分

分析教程内有QQ邮件    已经过期7 d1 \  m, j. x7 w9 I# s
等FTP好了我再上传
3 m4 v" |1 f; f. f

1 w1 Z6 A( Z% Q8 {; S) X* u8 [% c& ^4 u3 O+ {. }; e
上传完毕$ R6 X  e- r$ A+ j% Z; y
ftp好像上传了看不到下载目录..或许我的账号有误吧
6 Y" @  K9 \* B- C% \
( o' B  U/ Z; \! z9 {$ ?  ~6 G写了那么久,值得鼓励一下吧~回帖吧~% E" {% \) ^. l# n+ p

  t( W, g5 E2 ^: K7 |刚刚发完就给下载了...不回帖支持~不厚道么~内附解包代码4 c" u, ~3 t% |$ ?# H% i

: g, p# o9 E( \" Q2 n9 u
9 _! x. x5 k: M) ?  {  D5 s
游客,如果您要查看本帖隐藏内容请回复

! h& C7 M7 h. i/ O/ M$ C& U. u. [( ]; p* m7 N9 ^

' |4 |( x  Q& J
! h2 g  C8 f( m$ r: Q! E[strike]QQmail上传ing...[/strike]
0 h+ L. {, y; d  [4 l7 I
( W9 U( i' b; ?/ m& R! F! m5 G教程分上下,A是准备工作和废话% \# j8 t; f* V5 T
            B是废话+操作7 H( g9 N3 ^0 C- F  V) n4 d
" n1 @# Z9 ]& k0 r! S
水品有限...所以东西自然也有限,高手自觉略过吧...../ r1 n# B% J% {! W: o

: I$ P5 _; O% Q. s5 z主要代码拷贝到这里了,那个俺学习的时候,给我踩踩blog...
) |6 e" j$ j- x2 g! W# ^% R3 c5 d: K: {: \
教程补充:   
& N* Q. n  K* R% V3 |这个只是一个demo而已..还有太多地方该去改进,这个活交给聪明的你了。     |% J& d# x: a4 s( j# h
本来还有一个小工具的,可是呢,受限于信用问题,已经投稿便不能发了。。。
/ u: E7 ~1 Q& Y, \$ A- j  W操作文件C是王道,但是使用其他工具也没有问题的,甚至是轻量脚本php) X; H$ u  ]: A" B: I, f
如果你也用VB6或者VBNET可以考虑FSO,[其实和GET PUT一样的]
; ~! @7 T7 a! R$ l# v* m7 ^例子中没有告诉大家要注意资源的使用,比如初始化[虽然我有做]和
- s+ M2 x4 J& Y+ M2 a. X; w注销使用了的变量,我放到程序结束的时候了。
+ B8 t( X6 w  s& y0 \程序中没有检验传入数据,请注意,那个提取我检验过了,所以就删除掉了,) q6 S$ y% @- A! e( _. G4 D
那个indexB,的范围改成图片的数量就可以了,估计是手误吧... % Z; N6 S. [: r( G, g* m9 K- D8 q$ P
前面几个字符的处理其实也简单,不停的更换前面的那个头部结构声明,然后读取- I: x" P2 P$ ~) t7 B/ W
看看能和什么匹配就好,或者你就跟踪程序操作文件吧,在读取文件的API处下断+ L4 M3 X0 O* y! t
我去学习了,所以去踩博客吧~呵呵~
  Y/ q4 a% p6 O/ N( D' a3 t0 a; p" a
  1. Private Sub FirUnPack2()
  2.     Dim strPathLen    As Integer
  3.     Dim strPathChar() As String * 1
  4.     Dim strResPath    As String
  5.     Dim intSize       As Integer
  6.     Dim bData()       As Byte
  7.     Dim lngSize       As Long
  8.     Dim strFilePath   As String
  9.     Dim tmpStep       As Single, lngIndex As Long, lngFileNumA As Long, lngFileNumB As Long
  10.     strFilePath = App.Path & "\test.adv"
  11.     lngFileNumA = FreeFile
  12.     tmpStep = &HC + 1
  13.     Dim lngIndexB As Long
  14.     Open strFilePath For Binary As #lngFileNumA
  15.    
  16.     For lngIndexB = 0 To 1064
  17.         Get #lngFileNumA, tmpStep, strPathLen
  18.         ReDim strPathChar(1 To strPathLen)
  19.         tmpStep = tmpStep + 4
  20.         Get #lngFileNumA, tmpStep, strPathChar()
  21.         strResPath = ""
  22.         For lngIndex = 1 To strPathLen
  23.             strResPath = strResPath & strPathChar(lngIndex)
  24.         Next
  25.    
  26.         tmpStep = tmpStep + Len(strResPath) + 2
  27.         Get #lngFileNumA, tmpStep, intSize
  28.        
  29.         If intSize = 0 Then
  30.             tmpStep = tmpStep - 2
  31.             Get #lngFileNumA, tmpStep, intSize
  32.    
  33.             If intSize < 0 Then
  34.                 lngSize = 65536 + intSize
  35.                 ReDim bData(1 To lngSize)
  36.                 tmpStep = tmpStep + 4
  37.                 Get #lngFileNumA, tmpStep, bData()
  38.    
  39.                 tmpStep = tmpStep + lngSize
  40.    
  41.             Else
  42.    
  43.                 ReDim bData(1 To intSize)
  44.                 tmpStep = tmpStep + 4
  45.                 Get #lngFileNumA, tmpStep, bData()
  46.    
  47.                 tmpStep = tmpStep + intSize
  48.    
  49.             End If
  50.         Else
  51.             tmpStep = tmpStep - 2
  52.             Get #lngFileNumA, tmpStep, lngSize
  53.             ReDim bData(1 To lngSize)
  54.             tmpStep = tmpStep + 4
  55.             Get #lngFileNumA, tmpStep, bData()
  56.             tmpStep = tmpStep + lngSize
  57.         End If
  58.    
  59.         lngFileNumB = FreeFile
  60.         CreateNewDirectory (Mid$(strResPath, 1, InStrRev(strResPath, "\")))
  61.         strFilePath = strResPath
  62.         Open strFilePath For Binary As #lngFileNumB
  63.         Put #lngFileNumB, 1, bData()
  64.         Close #lngFileNumB
  65.     Next lngIndexB
  66.     Close #lngFileNumA
  67. End Sub
复制代码
[/hide]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
 楼主| 发表于 2009-4-21 04:59 | 只看该作者
自己的沙发自己占~
回复 支持 反对

使用道具 举报

板凳
发表于 2009-4-21 06:09 | 只看该作者
强烈支持
回复 支持 反对

使用道具 举报

地板
发表于 2009-5-3 13:03 | 只看该作者
支持了 [s:2]
回复 支持 反对

使用道具 举报

5#
发表于 2009-5-5 20:23 | 只看该作者
支持一下,下来学习看看,谢谢
回复 支持 反对

使用道具 举报

6#
发表于 2009-5-6 13:32 | 只看该作者
这个是什么东西啊?
回复 支持 反对

使用道具 举报

7#
发表于 2009-5-6 20:32 | 只看该作者
强烈支持楼主
回复 支持 反对

使用道具 举报

8#
发表于 2009-5-6 20:37 | 只看该作者
楼主更新下下载地址吧
回复 支持 反对

使用道具 举报

9#
发表于 2009-5-26 00:11 | 只看该作者
有點興趣...下看看
回复 支持 反对

使用道具 举报

10#
发表于 2009-5-26 10:44 | 只看该作者
十分感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表