Code AardioLine:1007复制1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721. 722. 723. 724. 725. 726. 727. 728. 729. 730. 731. 732. 733. 734. 735. 736. 737. 738. 739. 740. 741. 742. 743. 744. 745. 746. 747. 748. 749. 750. 751. 752. 753. 754. 755. 756. 757. 758. 759. 760. 761. 762. 763. 764. 765. 766. 767. 768. 769. 770. 771. 772. 773. 774. 775. 776. 777. 778. 779. 780. 781. 782. 783. 784. 785. 786. 787. 788. 789. 790. 791. 792. 793. 794. 795. 796. 797. 798. 799. 800. 801. 802. 803. 804. 805. 806. 807. 808. 809. 810. 811. 812. 813. 814. 815. 816. 817. 818. 819. 820. 821. 822. 823. 824. 825. 826. 827. 828. 829. 830. 831. 832. 833. 834. 835. 836. 837. 838. 839. 840. 841. 842. 843. 844. 845. 846. 847. 848. 849. 850. 851. 852. 853. 854. 855. 856. 857. 858. 859. 860. 861. 862. 863. 864. 865. 866. 867. 868. 869. 870. 871. 872. 873. 874. 875. 876. 877. 878. 879. 880. 881. 882. 883. 884. 885. 886. 887. 888. 889. 890. 891. 892. 893. 894. 895. 896. 897. 898. 899. 900. 901. 902. 903. 904. 905. 906. 907. 908. 909. 910. 911. 912. 913. 914. 915. 916. 917. 918. 919. 920. 921. 922. 923. 924. 925. 926. 927. 928. 929. 930. 931. 932. 933. 934. 935. 936. 937. 938. 939. 940. 941. 942. 943. 944. 945. 946. 947. 948. 949. 950. 951. 952. 953. 954. 955. 956. 957. 958. 959. 960. 961. 962. 963. 964. 965. 966. 967. 968. 969. 970. 971. 972. 973. 974. 975. 976. 977. 978. 979. 980. 981. 982. 983. 984. 985. 986. 987. 988. 989. 990. 991. 992. 993. 994. 995. 996. 997. 998. 999. 1000. 1001. 1002. 1003. 1004. 1005. 1006. 1007.
import
win
.ui;/*DSG{{*/
- mainForm =
win
.form(text="wow屬性讀取"
;right=1248
;bottom=667
)- mainForm.add(
- button={cls=
"button"
;text="刷新表"
;left=95
;top=221
;right=154
;bottom=242
;z=21
};- button2={cls=
"button"
;text="计算rcx偏移"
;left=1104
;top=536
;right=1184
;bottom=560
;z=29
};- button3={cls=
"button"
;text="求rcx值"
;left=1104
;top=568
;right=1184
;bottom=592
;z=31
};- button4={cls=
"button"
;text="Button"
;left=968
;top=592
;right=1040
;bottom=616
;z=32
};- button5={cls=
"button"
;text="取人物选中目标的坐标"
;left=952
;top=624
;right=1080
;bottom=648
;z=33
};- button_lu={cls=
"button"
;text="录制坐标"
;left=91
;top=344
;right=153
;bottom=364
;z=23
};- edit={cls=
"edit"
;left=154
;top=531
;right=535
;bottom=659
;edge=1
;multiline=1
;vscroll=1
;z=3
};- edit2={cls=
"edit"
;left=944
;top=536
;right=1096
;bottom=560
;edge=1
;multiline=1
;z=30
};- itemlist={cls=
"listview"
;left=344
;top=698
;right=1045
;bottom=828
;edge=1
;gridLines=1
;vscroll=1
;z=18
};- man_bufflist={cls=
"listview"
;left=-2
;top=366
;right=152
;bottom=659
;edge=1
;gridLines=1
;z=20
};- man_exp={cls=
"static"
;text="exp"
;left=59
;top=14
;right=134
;bottom=28
;transparent=1
;z=19
};- man_face={cls=
"static"
;text="face"
;left=80
;top=176
;right=158
;bottom=192
;notify=1
;transparent=1
;z=2
};- man_hp={cls=
"static"
;text="hp"
;left=8
;top=31
;right=83
;bottom=47
;notify=1
;transparent=1
;z=5
};- man_level={cls=
"static"
;text="level"
;left=8
;top=14
;right=49
;bottom=31
;transparent=1
;z=9
};- man_money={cls=
"static"
;text="money"
;left=80
;top=136
;right=165
;bottom=155
;notify=1
;transparent=1
;z=4
};- man_mp={cls=
"static"
;text="mp"
;left=8
;top=48
;right=88
;bottom=69
;notify=1
;transparent=1
;z=6
};- man_st1={cls=
"static"
;text="力量"
;left=8
;top=144
;right=48
;bottom=165
;notify=1
;transparent=1
;z=10
};- man_st2={cls=
"static"
;text="敏捷"
;left=8
;top=168
;right=72
;bottom=189
;notify=1
;transparent=1
;z=11
};- man_st3={cls=
"static"
;text="耐力"
;left=8
;top=184
;right=72
;bottom=205
;notify=1
;transparent=1
;z=12
};- man_st4={cls=
"static"
;text="智力"
;left=8
;top=208
;right=72
;bottom=229
;notify=1
;transparent=1
;z=13
};- man_st5={cls=
"static"
;text="精神"
;left=8
;top=224
;right=72
;bottom=245
;notify=1
;transparent=1
;z=14
};- man_st6={cls=
"static"
;text="护甲"
;left=8
;top=248
;right=72
;bottom=263
;notify=1
;transparent=1
;z=15
};- man_status={cls=
"static"
;text="status"
;left=80
;top=152
;right=160
;bottom=171
;notify=1
;transparent=1
;z=22
};- man_x={cls=
"static"
;text="x"
;left=8
;top=66
;right=72
;bottom=81
;transparent=1
;z=7
};- man_y={cls=
"static"
;text="y"
;left=8
;top=84
;right=72
;bottom=99
;transparent=1
;z=8
};- man_z={cls=
"static"
;text="z"
;left=8
;top=104
;right=120
;bottom=119
;transparent=1
;z=16
};- mosterlist={cls=
"listview"
;left=1092
;top=673
;right=1356
;bottom=796
;edge=1
;gridLines=1
;vscroll=1
;z=17
};- pets_bufflist={cls=
"listview"
;left=541
;top=534
;right=936
;bottom=659
;edge=1
;gridLines=1
;z=28
};- pets_exp={cls=
"static"
;text="pets_exp"
;left=8
;top=320
;right=150
;bottom=339
;notify=1
;transparent=1
;z=27
};- pets_hp={cls=
"static"
;text="pet_hp"
;left=8
;top=272
;right=162
;bottom=296
;notify=1
;transparent=1
;z=24
};- pets_mp={cls=
"static"
;text="pet_mp"
;left=8
;top=288
;right=163
;bottom=305
;notify=1
;transparent=1
;z=25
};- pets_satiation={cls=
"static"
;text="satiation"
;left=8
;top=304
;right=124
;bottom=319
;notify=1
;transparent=1
;z=26
};- tab={cls=
"tab"
;left=152
;top=0
;right=1242
;bottom=532
;db=1
;dl=1
;dr=1
;dt=1
;edge=1
;z=1
}- )
/*}}*/
import
process;import
math
;import
winex;import
winex.key//mosterform=mainForm.tab.loadForm(".\moster.aardio")
- mosterform=mainForm.tab.add(text=
"怪物表"
;right=871
;bottom=548
;)- mosterform.add(mosterlist={cls=
"listview"
;left=2
;top=-2
;right=874
;bottom=549
;db=1
;dl=1
;dr=1
;dt=1
;edge=1
;gridLines=1
;z=1
})- itemform1=mainForm.tab.add(text=
"物品表"
;right=871
;bottom=548
;)- itemform1.add(listview={cls=
"listview"
;left=2
;top=-2
;right=874
;bottom=549
;db=1
;dl=1
;dr=1
;dt=1
;edge=1
;gridLines=1
;z=1
})//itemform=mainForm.tab.loadForm(".\item.aardio")
- itemform=mainForm.tab.add(text=
"装备位置表"
;right=871
;bottom=548
;)- itemform.add(listview={cls=
"listview"
;left=2
;top=-2
;right=874
;bottom=549
;db=1
;dl=1
;dr=1
;dt=1
;edge=1
;gridLines=1
;z=1
})- otherform=mainForm.tab.add(text=
"其它表"
;right=871
;bottom=548
;)- otherform.add(listview={cls=
"listview"
;left=2
;top=-2
;right=874
;bottom=549
;db=1
;dl=1
;dr=1
;dt=1
;edge=1
;gridLines=1
;z=1
})- zuobiaoform=mainForm.tab.add(text=
"坐标编辑"
;right=871
;bottom=548
;)- zuobiaoform.add(
- button={cls=
"button"
;text="添加坐标"
;left=520
;top=64
;right=592
;bottom=88
;z=2
};- button2={cls=
"button"
;text="清空"
;left=520
;top=160
;right=592
;bottom=184
;z=3
};- checkbox={cls=
"checkbox"
;text="加入寻路坐标"
;left=528
;top=232
;right=624
;bottom=248
;z=5
};- checkbox2={cls=
"checkbox"
;text="增加采集坐标"
;left=528
;top=208
;right=624
;bottom=224
;z=6
};- checkbox3={cls=
"checkbox"
;text="采点"
;left=528
;top=256
;right=624
;bottom=272
;z=7
};- checkbox4={cls=
"checkbox"
;text="加入打怪坐标"
;left=528
;top=280
;right=624
;bottom=296
;z=8
};- checkbox5={cls=
"checkbox"
;text="走路"
;left=528
;top=304
;right=624
;bottom=320
;z=9
};- edit={cls=
"edit"
;left=0
;top=0
;right=472
;bottom=464
;ah=1
;aw=1
;edge=1
;multiline=1
;vscroll=1
;z=1
};- static={cls=
"static"
;text="总数"
;left=528
;top=336
;right=592
;bottom=352
;transparent=1
;z=4
}- )
- NtdllModuleBase = ::Kernel32.GetModuleHandle(
"Ntdll.dll"
)- NtWow64ReadVirtualMemory64=::Ntdll.api(
"NtWow64ReadVirtualMemory64"
,"pointer(- pointer ProcessHandle,
- LONG BaseAddress,
- pointer BufferData,
- LONG BufferLength,
- pointer ReturnLength)")
- NtWow64WriteVirtualMemory64=::Ntdll.api(
"NtWow64WriteVirtualMemory64"
,"pointer(- pointer ProcessHandle,
- LONG BaseAddress,
- pointer BufferData,
- LONG BufferLength,
- pointer ReturnLength)")
- NtQueryInformationProcess=::Ntdll.api(
"NtQueryInformationProcess"
,"pointer(- pointer ProcessHandle,
- PROCESSINFOCLASS ProcessInformationClass,
- pointer ProcessInformation,
- INT ProcessInformationLength,
- pointer ReturnLength OPTIONAL )" )
function
Bin2hex (input){var
len =string
.len(input);var
result =""
;for
(i=1
;len;2
){var
now =string
.sub(input,i,i+1
);- result = result ++
string
.hex(now," "
);- }
return
result;- }
//16进制字符串转换成字节流 用于modbus发送字符串
function
Hex2bin (input){var
len =string
.len(input);var
result =""
;for
(i=1
;len;2
){var
now =string
.sub(input,i,i+1
);- result = result ++
string
.unhex(now," "
);- }
return
result;- }
raw
.cast =function
( ctype,v )begin
var
union_ctype = {- union u= {
- byte byte =
0
;- BYTE ubyte =
0
;- word word =
0
;- WORD uvord =
0
;- int int =
0
;- INT uint =
0
;- long long =
0
;- LONG ulong =
0
;- double double =
0
;- float float =
0
- }
- }
return
raw
.convert( { long x= v },- union_ctype
- ).u[ctype];
end
;namespace
raw
{- byte =
"byte"
;- BYTE =
"ubyte"
;- word =
"word"
;- WORD =
"uvord"
;- int =
"int"
;- INT =
"uint"
;- long =
"long"
;- LONG =
"ulong"
;- double =
"double"
;- float =
"float"
- }
- mosterform.mosterlist.insertColumn(
"序号"
,40
)- mosterform.mosterlist.insertColumn(
"怪物名"
,100
)- mosterform.mosterlist.insertColumn(
"x坐标"
,80
)- mosterform.mosterlist.insertColumn(
"y坐标"
,80
)- mosterform.mosterlist.insertColumn(
"z坐标"
,80
)//5
- mosterform.mosterlist.insertColumn(
"属性"
,80
)- mosterform.mosterlist.insertColumn(
"角色基址"
,80
)- mosterform.mosterlist.insertColumn(
"角色id1"
,80
)- mosterform.mosterlist.insertColumn(
"角色id2"
,80
)- mosterform.mosterlist.insertColumn(
"攻擊方向"
,70
)- mosterform.mosterlist.insertColumn(
"等級"
,40
)//10
- mosterform.mosterlist.insertColumn(
"HP/MAXHP"
,100
)- mosterform.mosterlist.insertColumn(
"MP/MAXMP"
,100
)- mosterform.mosterlist.insertColumn(
"面向值"
,80
)- itemform.listview.insertColumn(
"背包序号"
,80
)- itemform.listview.insertColumn(
"物品欄位"
,100
)- itemform.listview.insertColumn(
"ID"
,250
)- itemform1.listview.insertColumn(
"背包序号"
,80
)- itemform1.listview.insertColumn(
"類型"
,80
)- itemform1.listview.insertColumn(
"物品名"
,100
)- itemform1.listview.insertColumn(
"数量"
,60
)- itemform1.listview.insertColumn(
"物品基址"
,90
)- itemform1.listview.insertColumn(
"ID"
,90
)- itemform1.listview.insertColumn(
"所屬背包ID"
,90
)- itemform1.listview.insertColumn(
"物品类型"
,90
)- itemform1.listview.insertColumn(
"包裹格数"
,90
)- otherform.listview.insertColumn(
"序号"
,80
)- otherform.listview.insertColumn(
"名稱"
,200
)- otherform.listview.insertColumn(
"類型"
,80
)- otherform.listview.insertColumn(
"基址"
,80
)- otherform.listview.insertColumn(
"ID1"
,80
)- otherform.listview.insertColumn(
"ID2"
,80
)- otherform.listview.insertColumn(
"x"
,80
)- otherform.listview.insertColumn(
"y"
,80
)- otherform.listview.insertColumn(
"z"
,80
)- mainForm.man_bufflist.insertColumn(
"人物buff序號"
,100
)- mainForm.man_bufflist.insertColumn(
"人物buffid"
,100
)- mainForm.pets_bufflist.insertColumn(
"宠物buff序號"
,120
)- mainForm.pets_bufflist.insertColumn(
"宠物buffid"
,120
)//var dll = ..raw.loadDll("\Read64.dll");
- dllfile=
string
.load("\res\Read64.dll"
)//string.save("C:\wow.dll",dllfile)
var
dll =raw
.loadDll(dllfile)//"C:\wow.dll");
- Read64=dll.api(
"Read64"
,"bool(int pid,LONG baseaddress,point buffer,int bufflength)"
,"stdcall"
)- GetBaseAddress=dll.api(
"GetBaseAddress"
,"long (int ProcessID, string ExeName)"
,"stdcall"
)while
(pid==null
){for
processEntryin
process.each("WowClassic.exe"
) {- pid=processEntry.th32ProcessID
- }
- }
class
PROCESS_BASIC_INFOMATION{- int ExotStatus;
- int PebBaseAddress;
//peb基址
- int AffintyMask;
- int BasePriority;
- INT UniqueProcessId;
- INT InheriterdFromUniqueProcesssId;
//接收父進程ID
- }
- mainForm.edit.print(
"pid:"
,pid)- prcs=process(pid);
- wowhandle=process.OpenProcess(0x1FFFFF
/*_PROCESS_ALL_ACCESS*/
,false
,pid)win
.delay(1000
);- mainForm.edit.print(
"find wow process"
)- func = prcs.asmCdecl(
"void( INT main)"
,'\x8B\x45\x08'
,//mov eax, [ebp+0x8]
'\x6A\x33'
,//push 0x33
'\xFF\x50\x25'
,//call dword [eax+0x25]
'\x83\x04\x24\x05'
,//add dword [esp], 0x5
'\xCB'
,//retf
'\xFF\x50\x2F'
,//call dword [eax+0x2f]
'\xC7\x44\x24\x04\x23\x00\x00\x00'
,//mov dword [esp+0x4], 0x23
'\x83\x04\x24\x0D'
,//add dword [esp], 0xd
'\xCB'
,//retf
- )
//func()
- read1=
function
(address,long){if
address ==false
{win
.msgbox("false"
)return
false
;- }
var
buffer=raw
.buffer(long)var
ret=Read64(pid,address,buffer,long)var
aa=""
if
ret {- str=
raw
.tostring
(buffer)if
str=null
{win
.msgbox(raw
.copy(buffer,aa,long))win
.msgbox(buffer[1
])- }
- str=
string
.reverse(str)- str=
string
.hex(str,""
)- }
else
{return
false
;- }
//raw.realloc(0,buffer) //指針消毀
return
"0x"
++str;- }
- read=
function
(address,long){var
buffer=raw
.buffer(long)var
ReturnLength=raw
.buffer(4
)- wowhandle=process.OpenProcess(0x1FFFFF
/*_PROCESS_ALL_ACCESS*/
,false
,pid)- NtWow64ReadVirtualMemory64(wowhandle,address,buffer,long,ReturnLength)
var
aa=""
if
buffer!=null
{- str=
raw
.tostring
(buffer)if
str=null
{win
.msgbox(raw
.copy(buffer,aa,long))win
.msgbox(buffer[1
])- }
- str=
string
.reverse(str)- str=
string
.hex(str,""
)- }
else
{return
false
;- }
//raw.realloc(0,buffer) //指針消毀
return
"0x"
++str;- }
- write=
function
(address,buff){if
!addressreturn
false
;var
buffer=raw
.buffer(buff)var
ReturnLength=raw
.buffer(4
)//var len = raw.sizeof(buff);
- len=
#buff
raw
.- mainForm.edit.print(len)
//mainForm.edit.print(raw.tostring(buffer))
- wowhandle=process.OpenProcess(0x1FFFFF
/*_PROCESS_ALL_ACCESS*/
,false
,pid)- NtWow64WriteVirtualMemory64(wowhandle,address,buffer,len,ReturnLength)
- }
- readname=
function
(address){if
address ==false
return
false
;var
buffer=raw
.buffer(60
)var
ReturnLength=raw
.buffer(4
)//Read64(pid,address,buffer,60)
- NtWow64ReadVirtualMemory64(wowhandle,address,buffer,
60
,ReturnLength)return
raw
.str(buffer,false
);- }
- wowhwnd = winex.waitVisible(,,
"GxWindowClass"
)//===============================================================================================
- wowbaseaddress=GetBaseAddress(pid,
"WowClassic.exe"
)- mainForm.edit.print(
"基址:"
++tostring
(wowbaseaddress,16
))//人物基址=tostring(read(wowbaseaddress+0xb4acc1-0x4,0x4)+(wowbaseaddress+0xb4acc1),16)
//人物基址=tostring(read(wowbaseaddress+0xb50cc1-0x4,0x4)+(wowbaseaddress+0xb50cc1),16)
- 人物基址=
tostring
(read(wowbaseaddress+0xd391e1-0x4,0x4)+(wowbaseaddress+0xd391e1),16
)//===================================================================================================
- mainForm.edit.print(
"人物基址:"
+人物基址)//mainForm.edit.print(read(人物基址,0x4))
//草药学=read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+0x15f0,0x1) //[角色基址+0x10]+0x15f0
- 草药学=read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+0x1600,0x2)
//[角色基址+0x10]+0x15f0
- mainForm.edit.print(
"草药学等级"
,tonumber
(草药学))- mainForm.setInterval(
1000
,function
(){// 定时执行参数@2指定的回调函数,参数@1指定间隔毫秒数
- maxhp=
tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x13c),0x4))//[[[人物基址]+200]+10]]]+8e*4-13c
- maxmp=
tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x134),0x4))//[[[人物基址]+200]+10]]]+8e*4-134
- hp=
tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x15c),0x4))//[[[人物基址]+200]+10]]]+8e*4-15c
- mp=
tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x154),0x4))//[[[人物基址]+200]+10]]]+8e*4-154
- mainForm.man_hp.text=
"hp:"
++hp++"/"
++maxhp;- mainForm.man_mp.text=
"mp:"
++mp++"/"
++maxmp;- mainForm.man_level.text=
"等级:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x104),0x4))//[[[人物基址]+200]+10]]]+8e*4-104
- mainForm.man_st6.text=
"护甲:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)),0x4))//[[[人物基址]+200]+10]]]+8e*4
- mainForm.man_st1.text=
"力量:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x3c),0x4))//[[[人物基址]+200]+10]]]+8e*4-3c
- mainForm.man_st2.text=
"敏捷:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x38),0x4))//[[[人物基址]+200]+10]]]+8e*4-38
- mainForm.man_st3.text=
"耐力:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x34),0x4))//[[[人物基址]+200]+10]]]+8e*4-34
- mainForm.man_st4.text=
"智力:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x30),0x4))//[[[人物基址]+200]+10]]]+8e*4-30
- mainForm.man_st5.text=
"精神:"
+tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)-0x2c),0x4))//[[[人物基址]+200]+10]]]+8e*4-2c
- exp=
tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)+0xf78),0x4))//[[[人物基址]+200]+10]]]+8e*4+f78
- mainForm.man_exp.text=
"exp:"
++exp++"/"
++tonumber
(read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+((0x8e*4
)+0xf7c),0x4))//[[[人物基址]+200]+10]]]+8e*4+f7c
- man_x=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1600,0x4)))//[[[人物基址]+200]+0x1600
- man_y=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1604,0x4)))//[[[人物基址]+200]+0x1604
- man_z=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1608,0x4)))//[[[人物基址]+200]+0x1608
- man_face=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1610,0x4)))//[[[人物基址]+200]+0x1608
- mainForm.man_x.text=
"x:"
++man_x- mainForm.man_y.text=
"y:"
++man_y- mainForm.man_z.text=
"z:"
++man_z- mainForm.man_face.text=
"face:"
++man_face- man_status=read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+0x174,0x4)
select
(tostring
(man_status,16
)) {case
"0x00000408"
{- mainForm.man_status.text=
"拾物中"
- status=
1
- }
case
"0x00080008"
{- mainForm.man_status.text=
"遠戰中"
- status=
2
- }
case
"0x00080808"
{- mainForm.man_status.text=
"近戰中"
- status=
3
- }
case
"0x00040008"
{- mainForm.man_status.text=
"死亡中"
- status=
4
- }
case
"0x00000008"
{- mainForm.man_status.text=
"正常中"
- status=
5
- }
else
{- mainForm.man_status.text=man_status
- }
- }
- skillnum=
0
- mainForm.man_bufflist.clear()
while
(true
){- ret=read(read(read(人物基址,0x4)+0x200,0x4)+skillnum*0x8+0x7954,0x1)
//[[[人物基址]+200]+skillnum*0x8+0x7954]
if
ret!=0x90 {- line=mainForm.man_bufflist.addItem(
tonumber
(ret),1
)- skill=read(read(read(人物基址,0x4)+0x200,0x4)+skillnum*0x8+0x7954+0x4,0x4)
- mainForm.man_bufflist.setItemText(skill,line,
2
)- }
- skillnum++
if
skillnum >= 0x90break
;- }
- }
- );
/*
import time.performance;
mainForm.setInterval(
500,function(){
if status==5 and shiwu==true {
//winex.key.click(wowhwnd,"C" )
//shiwu=false
}
elseif status==2 {//遠戰中
war=true
winex.key.click(wowhwnd,"4" )
//win.delay(500)
}
elseif status==3 {//近戰中
war=true
if maxhp*0.2<mp {
winex.key.click(wowhwnd,"2" )
}
winex.key.click(wowhwnd,"1" )
}
elseif status==5 and war=true {
if maxhp*0.5<mp {
winex.key.click(wowhwnd,"5" )
}
else {
winex.key.click(wowhwnd,"3" )
}
//shiwu=true
}
}
)
*/
- timer1=mainForm.setInterval(
2000
,function
(){- getitemsize()
- getmoster()
- getother()
- getitem()
- }
- )
- getmoster=
function
(){- num=0x1
//枚舉范圍 1~1ff
- mosterform.mosterlist.clear()
- mosterform.mosterlist.redraw()
while
(true
){//[[[人物基址]+30]+((num+num*2)*8)+10]
var
rax=read(read(人物基址,0x4)+0x30,0x4)//mainForm.edit.print(tostring(rax,16))
var
rdx=rax+((num+num*2
)*8
)+0x10//mainForm.edit.print(tostring(rdx,16))
- rdx=read(rdx,0x4)
if
rdx !=false
{//讀取類型
- attributes=read(rdx+0x20,0x1)
- attributes1=read(rdx+0x21,0x1)
//if attributes=="0x07" win.msgbox(attributes)
if
attributes!=false
and
(attributes==0x05or
attributes==0x06or
attributes=0x07){//取环境NPC坐标
- x=read(read(rdx+0x198,0x4)+0x20,0x4)
//[[角色基址+0x198]+0x20
- y=read(read(rdx+0x198,0x4)+0x24,0x4)
//[[角色基址+0x198]+0x24
- z=read(read(rdx+0x198,0x4)+0x28,0x4)
//[[角色基址+0x198]+0x28
- face=read(read(rdx+0x198,0x4)+0x30,0x4)
//[[角色基址+0x198]+0x34
- x=
raw
.cast(raw
.float,x)- y=
raw
.cast(raw
.float,y)- z=
raw
.cast(raw
.float,z)- face=
raw
.cast(raw
.float,face)//讀取等級
- level=
tonumber
(read(read(rdx+0x10,0x4)+0x134,0x1))//[[角色基址+0x10]+0x134
//讀取血量
var
mosterhp=tonumber
(read(read(rdx+0x10,0x4)+0xdc,0x4))//[[角色基址+0x10]+0xdc
var
mostermaxhp=tonumber
(read(read(rdx+0x10,0x4)+0xfc,0x4))//[[角色基址+0x10]+0xfc
//讀取MP
var
mostermp=tonumber
(read(read(rdx+0x10,0x4)+0xe4,0x4))//[[角色基址+0x10]+0xe4
var
mostermaxmp=tonumber
(read(read(rdx+0x10,0x4)+0x104,0x4))//[[角色基址+0x10]+0x104
//attributes1=tostring(read(read(rdx+0x10,0x4)+0xd3,0x1),16)
//讀取ID
var
mosterid=read(rdx+0x58,0x4)- mosterid2=read(rdx+0x60,0x4)
//if attributes==0x7 win.msgbox(attributes,mosterid)
//attributes2=tostring(read(read(rdx+0x10,0x4)+0x134,0x1),16)
if
tonumber
(mosterid)>0
and
(tonumber
(mosterid2)>0
or
attributes==0x7or
attributes==0x6) {- line=mosterform.mosterlist.addItem()
- mosterform.mosterlist.setItemText(
tostring
(num,16
),line,1
)if
attributes==0x7 {- x=man_x
- y=man_y
- z=man_z
- }
- mosterform.mosterlist.setItemText(x,line,
3
)- mosterform.mosterlist.setItemText(y,line,
4
)- mosterform.mosterlist.setItemText(z,line,
5
)- mosterform.mosterlist.setItemText(
tostring
(rdx,16
),line,7
)//baseaddr
- mosterform.mosterlist.setItemText(
tostring
(mosterid,16
),line,8
)- mosterform.mosterlist.setItemText(
tostring
(mosterid2,16
),line,9
)- mosterform.mosterlist.setItemText(level,line,
11
)- mosterform.mosterlist.setItemText(mosterhp++
"/"
++mostermaxhp,line,12
)- mosterform.mosterlist.setItemText(mostermp++
"/"
++mostermaxmp,line,13
)- mosterform.mosterlist.setItemText(face,line,
14
)select
(attributes) {case
"0x05"
{/*
if attributes1 == 0x2 {
mosterform.mosterlist.setItemText("怪物 "++attributes1,line,6)
}
elseif attributes1 == 0x1 or attributes1 == 0x0 {
mosterform.mosterlist.setItemText("NPC "++attributes1,line,6)
}
*/
- man_id=read(read(read(人物基址,0x4)+0x200,0x4)+0x58,0x4)
- mosterform.mosterlist.setItemText(
"怪物 "
++attributes1,line,6
)//mainForm.edit.print(man_id)
if
read(read(rdx+0x10,0x4)+0x5c,0x4)==man_id {- pets_id=read(read(rdx+0x10,0x4)+0x0,0x4)
- pets_satiation=
tonumber
(read(read(rdx+0x10,0x4)+0xf0,0x4))- pets_level=
tonumber
(read(read(rdx+0x10,0x4)+0x134,0x4))- pets_exp=
tonumber
(read(read(rdx+0x10,0x4)+0x1c8,0x4))- pets_exp_max=
tonumber
(read(read(rdx+0x10,0x4)+0x1cc,0x4))- pets_hp=
tonumber
(read(read(rdx+0x10,0x4)+0xdc,0x4))- pets_hp_max=
tonumber
(read(read(rdx+0x10,0x4)+0xfc,0x4))- pets_mp=
tonumber
(read(read(rdx+0x10,0x4)+0xe4,0x4))- pets_mp_max=
tonumber
(read(read(rdx+0x10,0x4)+0x104,0x4))- mainForm.pets_hp.text=
"pets_hp :"
++pets_hp++"/"
++pets_hp_max- mainForm.pets_mp.text=
"pets_mp :"
++pets_mp++"/"
++pets_mp_max- mainForm.pets_exp.text=
"pets_exp :"
++pets_exp++"/"
++pets_exp_max- mainForm.pets_satiation.text=
"飽食度 :"
++pets_satiation//mainForm.edit.print("宠物基址: "++rdx)
//mainForm.edit.print("宠物id: "++pets_id)
- mosterform.mosterlist.setItemText(
"寵物 "
++attributes1,line,6
)- skillnum=
0
- mainForm.pets_bufflist.clear()
while
(true
){- ret=read(rdx+skillnum*0x8+0x7954,0x1)
//[[[人物基址]+200]+skillnum*0x8+0x7954]
if
ret!=0x90 {- line=mainForm.pets_bufflist.addItem(
tonumber
(ret),1
)- skill=read(rdx+skillnum*0x8+0x7954+0x4,0x4)
- mainForm.pets_bufflist.setItemText(skill,line,
2
)- }
- skillnum++
if
skillnum >= 0x90break
;- }
- }
elseif
read(read(rdx+0x10,0x4)+0x5c,0x4)!=0
{- mosterform.mosterlist.setItemText(
"玩家寵物 "
++attributes1,line,6
)- }
- }
case
"0x06"
{if
attributes1=0x6{- mosterform.mosterlist.setItemText(
"玩家 "
++attributes1,line,6
)- }
- }
case
"0x07"
{if
tostring
(read(rdx+0x21,0x1),16
)=0x7{- mosterform.mosterlist.setItemText(
"自已 "
++attributes1,line,6
)//mainForm.edit.print("角色基址:"++tostring(rdx,16))
- }
- }
case
"0x01"
{- mosterform.mosterlist.setItemText(
"背包 "
++attributes1,line,6
)- }
case
"0x02"
{- mosterform.mosterlist.setItemText(
"包裹 "
++attributes1,line,6
)- }
case
"0x08"
{- mosterform.mosterlist.setItemText(
"鱼漂 "
++attributes1,line,6
)- }
else
{- mosterform.mosterlist.setItemText(
"未知类型"
++attributes++attributes1,line,6
)- }
- }
//名字讀取的2個方式
var
per=read(rdx+0x17b8,0x4)if
per !=false
and
per !=0
{var
name1=readname(read(per+0x120,0x4))if
name1!=false
{- mosterform.mosterlist.setItemText(name1,line,
2
)- }
var
name2=readname(read(per+0xe0,0x4))if
name2 !=false
{- mosterform.mosterlist.setItemText(name2,line,
2
)- }
- }
- man_x=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1600,0x4)))//[[[人物基址]+200]+0x1600
- man_y=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1604,0x4)))//[[[人物基址]+200]+0x1604
- man_face=
raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1610,0x4)))//[[[人物基址]+200]+0x1608
if
man_x-x !=0
{//自已坐標就為0
- jiao=
math
.atan((y-man_y)/(x-man_x))//反正切函数
if
x-man_x <0
and
y-man_y >0
{//第2象限
- jiao=
math
.rad(180
)-jiao- }
elseif
x-man_x <0
and
y-man_y <0
{//第3象限
- jiao=
math
.rad(180
)+jiao- }
elseif
x-man_x >0
and
y-man_y <0
{//第4象限
//jiao=math.rad(360)-jiao
- }
- jiao=
math
.abs(jiao)//絕對值
//jiao=math.deg(jiao)
- mosterform.mosterlist.setItemText(jiao,line,
10
)- }
- }
- }
- }
- num++
if
num>0x4ffbreak
;- }
- }
- getitemsize=
function
(){- rdx=read(read(人物基址,0x4)+0x200,0x4)
- itemcount=read(rdx+0x20f98,0x4)
for
(i=itemcount;1
;-1
){//mainForm.edit.print(read(itemtab+i*0x10,0x10))
- itemform.listview.addItem()
- itemform.listview.setItemText(
tostring
(i,16
),i,1
)- itemtab=read(rdx+0x20fa0,0x4)
- itemid=read(itemtab+i*0x10,0x4)
select
(i) {case
3
{- itemform.listview.setItemText(
"衬衣"
,i,2
)- }
case
4
{- itemform.listview.setItemText(
"胸部"
,i,2
)- }
case
5
{- itemform.listview.setItemText(
"腰部"
,i,2
)- }
case
6
{- itemform.listview.setItemText(
"腿部"
,i,2
)- }
case
7
{- itemform.listview.setItemText(
"脚"
,i,2
)- }
case
8
{- itemform.listview.setItemText(
"手腕"
,i,2
)- }
case
9
{- itemform.listview.setItemText(
"手"
,i,2
)- }
case
14
{- itemform.listview.setItemText(
"背部"
,i,2
)- }
case
15
{- itemform.listview.setItemText(
"主手"
,i,2
)- }
case
16
{- itemform.listview.setItemText(
"副手"
,i,2
)- }
case
17
{- itemform.listview.setItemText(
"远程"
,i,2
)- }
case
19
{- itemform.listview.setItemText(
"背包栏第四格"
,i,2
)- }
case
20
{- itemform.listview.setItemText(
"背包栏第三格"
,i,2
)- }
case
21
{- itemform.listview.setItemText(
"背包栏第二格"
,i,2
)- }
case
22
{- itemform.listview.setItemText(
"背包栏第一格"
,i,2
)- }
case
23
{- itemform.listview.setItemText(
"大背包第1格"
,i,2
)- }
case
24
{- itemform.listview.setItemText(
"大背包第2格"
,i,2
)- }
case
25
{- itemform.listview.setItemText(
"大背包第3格"
,i,2
)- }
case
26
{- itemform.listview.setItemText(
"大背包第4格"
,i,2
)- }
case
27
{- itemform.listview.setItemText(
"大背包第5格"
,i,2
)- }
case
28
{- itemform.listview.setItemText(
"大背包第6格"
,i,2
)- }
case
29
{- itemform.listview.setItemText(
"大背包第7格"
,i,2
)- }
case
30
{- itemform.listview.setItemText(
"大背包第8格"
,i,2
)- }
case
31
{- itemform.listview.setItemText(
"大背包第9格"
,i,2
)- }
case
32
{- itemform.listview.setItemText(
"大背包第10格"
,i,2
)- }
case
33
{- itemform.listview.setItemText(
"大背包第11格"
,i,2
)- }
case
34
{- itemform.listview.setItemText(
"大背包第12格"
,i,2
)- }
case
35
{- itemform.listview.setItemText(
"大背包第13格"
,i,2
)- }
case
36
{- itemform.listview.setItemText(
"大背包第14格"
,i,2
)- }
case
37
{- itemform.listview.setItemText(
"大背包第15格"
,i,2
)- }
case
38
{- itemform.listview.setItemText(
"大背包第16格"
,i,2
)- }
- }
if
tonumber
(itemid)!=0
{- itemform.listview.setItemText(itemid,i,
3
)- }
else
{- itemform.listview.setItemText(
"空物品栏"
,i,3
)- }
- }
- }
- man_id=read(read(人物基址,0x4)+0x200+0x58,0x4)
- mainForm.edit.print(
"角色基址:"
++read(read(人物基址,0x4)+0x200,0x4))//物品總數 [[141a3fb48]+0x200]+20f98
- rdx=read(read(人物基址,0x4)+0x200,0x4)
- money=read(read(rdx+0x10,0x4)+0x11a8,0x4)
//金幣[[角色基址+10]+11a8]
- mainForm.man_money.text=
"金幣:"
+tonumber
(money)- itemcount=read(rdx+0x20f98,0x4)
//裝備列表 [[[141a3fb48]+0x200]+20fa0]
- itemtab=read(rdx+0x20fa0,0x4)
- mainForm.edit.print(
"itemcount: "
++itemcount)- mainForm.edit.print(
"itemtab: "
++itemtab)//取物品枚舉
//[[[141a3fb48]+30]+((rdx+rdx*2)*8)+10]
/*itemnum=0x73
for(i=1;itemcount;1){
rdx=read(read(人物基址,0x4)+0x30,0x4)
mainForm.edit.print("物品指針: "++read((rdx+(i+i*2)*0x8)+0x10,0x4))
rdx=read((rdx+(i+i*2)*0x8)+0x10,0x4)
}
*/
- getother=
function
(){- num=0x1
//枚舉范圍 1~1ff
- otherform.listview.clear()
- otherform.listview.redraw()
while
(true
){- rax=read(read(人物基址,0x4)+0x30,0x4)
- rdx=rax+((num+num*
2
)*8
)+0x10- rdx=read(rdx,0x4)
if
rdx !=false
{- attributes=
tostring
(read(rdx+0x20,0x1),16
)- attributes1=
tostring
(read(rdx+0x21,0x1),16
)if
attributes!=false
and
(attributes==0x08and
attributes1==0x08 ){- name=readname(read(read(rdx+0x478,0x4)+0xe0,0x4))
//[[物品基址+478]+e0]
- x=read(rdx+0x4b0,0x4)
//[物品基址+4b0]
- y=read(rdx+0x4b4,0x4)
//[物品基址+4b4]
- z=read(rdx+0x4b8,0x4)
//[物品基址+4b8]
- x=
raw
.cast(raw
.float,x)- y=
raw
.cast(raw
.float,y)- z=
raw
.cast(raw
.float,z)- otherid=read(rdx+0x58,0x4)
- line=otherform.listview.addItem()
- otherform.listview.setItemText(num,line,
1
)- otherform.listview.setItemText(name,line,
2
)- otherform.listview.setItemText(attributes++
" "
++attributes1,line,3
)- otherform.listview.setItemText(
tostring
(rdx,16
),line,4
)//baseaddr
- otherform.listview.setItemText(otherid,line,
5
)- otherform.listview.setItemText(x,line,
7
)- otherform.listview.setItemText(y,line,
8
)- otherform.listview.setItemText(z,line,
9
)- }
- }
- num++
if
num>0x1ffbreak
;- }
- }
- getitem=
function
(){- num=0x1
//枚舉范圍 1~1ff
- itemform1.listview.clear()
- itemform1.listview.redraw()
while
(true
){- rax=read(read(人物基址,0x4)+0x30,0x4)
- rdx=rax+((num+num*
2
)*8
)+0x10- rdx=read(rdx,0x4)
if
rdx !=false
{- attributes=
tostring
(read(rdx+0x20,0x1),16
)- attributes1=
tostring
(read(rdx+0x21,0x1),16
)if
attributes!=false
and
((attributes==0x01and
attributes1==0x01)or
(attributes==0x02and
attributes1==0x02)){- shu=read(read(rdx+0x10,0x4)+0x5c,0x4)
- name=readname(read(read(rdx+0x478,0x4)+0xe0,0x4))
- itemid=read(rdx+0x58,0x4)
- itemid2=read(read(rdx+0x10,0x4)+0x2c,0x4)
- itemtype=read(read(rdx+0x10,0x4)+0x10,0x4)
- line=itemform1.listview.addItem()
- itemform1.listview.setItemText(num,line,
1
)if
attributes==0x01and
attributes1==0x01 {- itemform1.listview.setItemText(
"道具 "
++attributes++" "
++attributes1,line,2
)- }
elseif
(attributes==0x02and
attributes1==0x02){- itemform1.listview.setItemText(
"包裹 "
++attributes++" "
++attributes1,line,2
)- bagcount=read(read(rdx+0x10,0x4)+0x380,0x4)
- itemform1.listview.setItemText(bagcount,line,
9
)//包裹数目
- }
- itemform1.listview.setItemText(name,line,
3
)- itemform1.listview.setItemText(
tonumber
(shu),line,4
)//數量
- itemform1.listview.setItemText(
tostring
(rdx,16
),line,5
)//baseaddr
- itemform1.listview.setItemText(itemid,line,
6
)- itemform1.listview.setItemText(itemid2,line,
7
)- itemform1.listview.setItemText(itemtype,line,
8
)- }
- }
- num++
if
num>0x1ffbreak
;- }
- }
//取环境NPC坐标
//x=[[[[人物基址]+0x30]+(0x44+0x44*2)*8+0x10]+0x198]+0x20
//y=[[[[人物基址]+0x30]+(0x44+0x44*2)*8+0x10]+0x198]+0x24
//z=[[[[人物基址]+0x30]+(0x44+0x44*2)*8+0x10]+0x198]+0x28
/*
class TokenPrivileges { 0 };
//t=raw.convert(TokenPrivileges)
OpenProcessToken=::Kernel32.api("OpenProcessToken","Bool(point handle,struct desired , point tokenhandle)" )
Advapi32=raw.loadDll("Advapi32.dll")
LookupPrivilegeValue=Advapi32.api("LookupPrivilegeValue","int(ustring lpSystemName,ustring lpName,point& lpLuid)");
ret=LookupPrivilegeValue(null,"SeDebugPrivilege",topointer("v1"))
OpenProcessToken(process.getHandle(),t,null)
aa=raw.realloc(1)
//dd=raw.realloc(20)
ReturnLength=raw.realloc(1)
NtWow64ReadVirtualMemory64(prcs.handle,0x0000000036C55215,aa,1,ReturnLength)
mainForm.edit.print(aa,ret)
/*
for( addr,len,str,i,j,pattern,protect,mtype
in prcs.eachQuery( , ,eval("'"+str+"'"),0x0
)
){
mainForm.edit.print("基址",tostring(addr-0x1000,16),"長度",tostring(len,16))
mainForm.edit.print("找到的代碼地址",tostring(addr+i-1,16))
address=addr+i-1+offaddr
baseaddr=addr-0x1000
}
*/
- mainForm.onClose =
function
(hwnd,message,wParam,lParam){//fsys.delete("c:\wow.dll")
- }
- mainForm.button.oncommand =
function
(id,event){if
mainForm.button.text=="刷新表"
{- mainForm.changeInterval(timer1,
20000000
);- mainForm.button.text=
"停止刷新"
;- }
elseif
mainForm.button.text=="停止刷新"
{- mainForm.changeInterval(timer1,
2000
);- mainForm.button.text=
"刷新表"
;- }
- }
- mainForm.tab.onnotify =
function
(id,code,ptr){- }
- mainForm.button_lu.oncommand =
function
(id,event){import
fsys.ini;- ini=fsys.ini(
"..\跑图路线.INI"
)//path=ini.readKeys("路线")
- path=ini.getSection(
"路线"
)var
num=tonumber
(ini.read("路线"
,"点数"
))//num=tonumber(path.点数)
//mainForm.edit.print(#num,type(num))
if
num==null
{//win.msgbox("1")
//mainForm.edit.print(num)
- num=
0
;- ini.write(
"路线"
,"点数"
,"0"
)- }
else
{//win.msgbox("2")
- num=num+
1
- ini.write(
"路线"
,"点数"
,num)- }
- ini.write(
"路线"
,"点"
+num,math
.round(man_x)++","
++math
.round(man_y)++","
++math
.round(man_z))- }
- mainForm.button2.oncommand =
function
(id,event){var
aa=mainForm.edit2.text- aa=
tonumber
("0x"
+aa)- mainForm.edit2.text=
tostring
(aa-wowbaseaddress,16
)- }
- mainForm.button3.oncommand =
function
(id,event){var
aa=mainForm.edit2.text- aa=
tonumber
("0x"
+aa)- mainForm.edit2.text=
tostring
(aa+wowbaseaddress,16
)//mainForm.edit2.text=string.reverse(string.replace(tostring(aa+wowbaseaddress,16),"0x",""))
- }
- zuobiao=
0
- zuobiaoform.button.oncommand =
function
(id,event){//zuobiaoform.edit.print("MoveTo("++math.round(man_x,2)++","++math.round(man_y,2)++","++math.round(man_z,2)++")")
//zuobiaoform.edit.print(string.format("%.2f",-4335.255654 ))
//zuobiaoform.edit.print(string.format("%i",-4335.258654 ))
if
zuobiaoform.checkbox.checked {- zuobiaoform.edit.print(
"加入寻路坐标("
++string
.format("%.2f"
,man_x)++","
++string
.format("%.2f"
,man_y)++","
++string
.format("%.2f"
,man_z)++")"
)- }
elseif
zuobiaoform.checkbox2.checked {- zuobiaoform.edit.print(
"增加采集坐标("
++string
.format("%.2f"
,man_x)++","
++string
.format("%.2f"
,man_y)++","
++string
.format("%.2f"
,man_z)++")"
)- }
elseif
zuobiaoform.checkbox3.checked {//zuobiaoform.edit.print("[路径]")
- zuobiaoform.edit.print(
"点"
++zuobiao++"="
++string
.format("%.2f"
,man_x)++","
++string
.format("%.2f"
,man_y)++","
++string
.format("%.2f"
,man_z))- }
elseif
zuobiaoform.checkbox4.checked {- zuobiaoform.edit.print(
"加入打怪坐标("
++string
.format("%.2f"
,man_x)++","
++string
.format("%.2f"
,man_y)++","
++string
.format("%.2f"
,man_z)++")"
)- }
elseif
zuobiaoform.checkbox5.checked {- zuobiaoform.edit.print(
"走路("
++string
.format("%.2f"
,man_x)++","
++string
.format("%.2f"
,man_y)++","
++string
.format("%.2f"
,man_z)++")"
)- }
- zuobiao++
- zuobiaoform.static.text=
"总数"
++zuobiao- }
- zuobiaoform.button2.oncommand =
function
(id,event){- zuobiaoform.edit.text=
""
- zuobiaoform.static.text=
"总数"
++0
- zuobiao=
0
- }
- mainForm.button4.oncommand =
function
(id,event){var
man_x=raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1600,0x4)))//[[[人物基址]+200]+0x1600
var
man_y=raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1604,0x4)))//[[[人物基址]+200]+0x1604
var
man_z=raw
.cast(raw
.float,(read(read(read(人物基址,0x4)+0x200,0x4)+0x1608,0x4)))//[[[人物基址]+200]+0x1608
var
xaddress=string
.format("%x"
,read(read(人物基址,0x4)+0x200,0x4)+0x1600)var
yaddress=string
.format("%x"
,read(read(人物基址,0x4)+0x200,0x4)+0x1604)var
zaddress=string
.format("%x"
,read(read(人物基址,0x4)+0x200,0x4)+0x1608)- mainForm.edit.print(xaddress,yaddress,zaddress)
- mainForm.edit.print(chage(man_x),chage(man_y),chage(man_z))
- write(xaddress,chage(man_x))
//write(0x40366cbc,0x0000ffff)
- }
- chage=
function
(num){var
floatX =raw
.convert( {float n=num},{int x}).x- floatX=
string
.format("%x"
,floatX )return
floatX;- }
- mainForm.button5.oncommand =
function
(id,event){- 目标ID1=read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+0x9c,0x4)
- 目标ID2=read(read(read(read(人物基址,0x4)+0x200,0x4)+0x10,0x4)+0xA4,0x4)
- ss=mosterform.mosterlist.count
for
(i=1
;ss;1
){if
目标ID1==mosterform.mosterlist.getItemText(i,8
)and
目标ID2==mosterform.mosterlist.getItemText(i,9
){- mainForm.edit.print(
"名字:"
,mosterform.mosterlist.getItemText(i,2
))- mainForm.edit.print(
"x:"
,mosterform.mosterlist.getItemText(i,3
))- mainForm.edit.print(
"y:"
,mosterform.mosterlist.getItemText(i,4
))- mainForm.edit.print(
"z:"
,mosterform.mosterlist.getItemText(i,5
))- }
- }
- }
- mainForm.show();
return
win
.loopMessage();
最新回复 (0)