mkv

Untitled

mkv
Mar 28th, 2017
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. wait until level load
  2. search for dialogue string in memory
  3. follow in dump
  4. first byte in dump -> follow in disassembler
  5. first byte in dump -> breakpint -> hardware, access -> byte
  6. set break condition
  7. eax==93f884 || ebx==93f884 || ecx==93f884 || edx==93f884 || ebp==93f884 || esp==93f884 || esi==93f884 || edi==93f884
  8.  
  9. klllllllll
  10.  
  11. setting this breakpoint leads to the discovery of d56a7f
  12. which is hit for every new line of dialogue to process
  13.  
  14. use d56a7f for subsequent runs to find the dialogue line in memory,
  15. then set the original breakpoint described above
  16. and keep F9'ing until a couple letters have appeared
  17.  
  18. the scripted breakpoint will hit 12 times for each screen refresh
  19.  
  20. counting from 0=a after a screen refresh,
  21. the kth run will affect the first letter,
  22. the lth run will affect all remaining letters
  23.  
  24. 74806225 accesses start of dialogue line at kth run, located in kernelbase.dll
  25. ce1e7f accesses start of dialogue line at lth run, located in kengeki.exe
  26.  
  27. when 74806225 is at Youmu: (esi is umu:) and text is edited, Yoaaaa
  28. when 74806225 is at dialoge (esi is 5th char), HHHHnnnnnnn...
  29.  
  30. text is rendered when 74806225 esi leaves FPS string,
  31. which is occasionally processed in the middle of dialogue lines
  32.  
  33. b0 = first char
  34. 74806225 esi e0 d
  35. ce1e7f ebx e0 e
  36. 74806225 esi e1 f
  37. ce1e7f ebx e1 g
  38. ccccccccccccccccdfggggggg
  39. 0 2 4 6 8 a c e 0 2 4
  40.  
  41. 74806225 is part of MultiByteToWideChar called from c41e8e
  42. mbwc entry at 766851a0 jumps to 74805d90
  43. calls getcphashnode at some point
  44.  
  45. a 94 c6 94 요
  46. c 5c d5 5c 한
  47. e 00 ae 00 글
  48.  
  49. cl = 8bit low
  50. ch = 2nd 8bit
  51. cx = 16 bit
  52. ecx = 32bit
  53. lcx = 64 bit
  54.  
  55. 901 385
  56. c_932 3a4 ja-JP sjis
  57. c_949 ko-KR euc-kr
  58. c_1256 ar-AE
  59.  
  60. 74806225 reads single-byte character into eax
  61. 7480622a copies wordptr ds:[ebx+eax*2] to cx (ecx 16LSB),
  62. ebx is 1c into C:\windows\System32\C_932.NLS
  63. 7480622e copies dwordptr ss:[ebp-18] to eax,
  64. ebp:12ff4d4 [ebp-18]=[12ff4bc]=4081D805
  65. 74806231 copies cx to wordptr ss:[ebp-10],
  66. ebp:12ff4d4 [ebp-10]=[12ff4c4]=16104538=esi=aaaaaa
  67.  
  68. codecave at 3770000 to replace c_932 at c150000 ... 377001c
  69.  
  70. a original value
  71. b esi at 5th char, base+4 (z1 a)b
  72. single iteration from rflo
  73. c before rfloP
  74. d during rfloP
  75. e after rfloP
  76.  
  77. didn't draw, trying again
  78.  
  79. e first value entering rflo
  80. a = 20 first hit of rflo
  81. b = 21 second hit
  82. c = 22 first hit rfloP
  83. d 23 second hit
  84. e = 23 rflo
  85. f 24 rfloP
  86. g = 24 rflo
  87. h 25 rfloP
  88. i = 25 rfloP after
  89. j 26 rfloP
  90. k = 26 rfloP after
  91. = abcegikkk
  92.  
  93. z 20 p2 b1
  94. y 20 p2
  95. x 20 p1 b1
  96. w 20 p1
  97. v = 20 p0
  98. u 20 p2 c1
  99. t 20 r1
  100. s 20 r1 after
  101. r 20 r1 b65
  102. q 20 r1 b93
  103. p 20 r1 ba2
  104. o 20 r1 c18
  105. n 20 r1 c32
  106. m 20 p2 c1 after
  107. = vmmm
  108.  
  109. a 21 p1
  110. b 22 p2 c1
  111. c 22 p2 c1 after
  112. d 23 p2 b1
  113. e 23 p2 (b1 after)
  114. f 23 p1 b1
  115. g 23 p1
  116. h 23 p1 b1 after
  117. i 23 p2 c1
  118. k 23 p2 c1 after
  119.  
  120. a p0
  121. b 76616083
  122. c after
  123. d = p1 after
  124. e p0
  125. f 76616083
  126. g = after
  127. h read remain
  128. = zdghhh
  129.  
  130.  
  131. a orig
  132. b p1
  133. c p1 after
  134. d p1 b1 after
  135. e p2 c1
  136. f p2
  137.  
  138.  
  139. a p1
  140. b p1 after
  141. c p1 b1 (actually p2)
  142. d = p2 after
  143. e 1331f32
  144. f p2 c1
  145. g p2 c1 after
  146. = dgggg
  147.  
  148.  
  149. a p1
  150. b p2 after 18
  151. c p2 c1 19
  152. d p2
  153. e p2 after
  154. f 82
  155. g 85
  156. h 91
  157. i 9f
  158. j c5
  159. k c8
  160. l ca
  161. m cf
  162. n d2
  163. o d5
  164. p d8
  165. q db
  166. r de
  167. s e1
  168. t e4
  169. u e7
  170. v ec
  171. w 00
  172. x 05
  173. y 2c
  174. = abeyyy
  175.  
  176.  
  177. a p2
  178. b 7d
  179. c ecx
  180. d 7f
  181. e 82
  182. f 85
  183. g 91 ecx
  184. h 91
  185. = ghhh
  186.  
  187. cl = 8lsb
  188. dl = 8msb
  189. eax = numBytes
  190. cl = [ebx]
  191. dl = [ebx+1]
  192.  
  193. after return from rflo-p2,
  194. set eax=2 and [ebx] ucs2le, 94 c6
  195.  
  196. ebp after decode
  197. -1c numBytes
  198. + c byte1
  199. + d byte2
  200. +1c floatval
  201. +28 floatval
  202. -34 floatval
  203. -30 floatval
  204. -2c floatval
  205. -28 floatval
  206. - 4 floatval const?
  207.  
  208. 0:char 1:floats 2:e 3:str 4:??? esp:??? edi=data
  209. render3 0:??? 1,edx:char 2:floats 3:e 4:str 5:??? esp:??? edi,ecx=data
  210.  
  211. [ecx+c]==31
  212. 1 4C644A0 c089 佳
  213. 2 4C56690 6083 チ
  214.  
  215.  
  216.  
  217.  
  218.  
  219. 117fdaf: jmp 0x13eec30
  220. 117fd84: nop
  221.  
  222. 0x13eec30:
  223. mov esp, ebp
  224. pop ebp
  225. ret 4
  226.  
  227. 01181F1E | D9 45 D8 | fld dword ptr ss:[ebp-28] | push 1.0f
  228. 01181F21 | D8 4D F4 | fmul dword ptr ss:[ebp-C] | *= 1.0f
  229. 01181F24 | D9 5D D8 | fstp dword ptr ss:[ebp-28] | put back in [ebp-28]
  230.  
  231. fld dword ptr [ebx]
  232. 123effc
Advertisement
Add Comment
Please, Sign In to add comment