手工xxoo Visual Assist X 笔记
crack流程:
0.找到 GetModuleHandleA 和 GetProcAddress 函數的ptr指針
記為 (***a)DA723C ?(***b)DA722C
1.找到如下代碼片段(交叉引用 unknown_libname_125 (call j__free) ; Microsoft VisualC 2-14/net runtime 可找到)
.text1:10CEF47F 50 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?eax .text1:10CEF480 68 D0 BF D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2BFD0 .text1:10CEF485 68 80 6F D0 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D06F80 .text1:10CEF48A 68 20 6F D0 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D06F20 .text1:10CEF48F 68 40 6E D0 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D06E40 .text1:10CEF494 68 30 9E D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D29E30 .text1:10CEF499 68 30 F1 CE 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10CEF130 .text1:10CEF49E 68 B0 A1 D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2A1B0 .text1:10CEF4A3 68 80 BF D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2BF80 .text1:10CEF4A8 68 90 BD D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2BD90 <<< .text1:10CEF4AD 68 90 B9 D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2B990 .text1:10CEF4B2 68 30 B9 D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2B930 .text1:10CEF4B7 68 10 B9 D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset unknown_libname_125 ; Microsoft VisualC 2-14/net runtime .text1:10CEF4BC 68 40 B5 D2 10 ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?offset sub_10D2B540 .text1:10CEF4C1 A1 C0 F3 DB 10 ? ? ? ? ? ? ? ? ? ? ? ? ?mov ? ? eax, ds:hInstance .text1:10CEF4C6 50 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?push ? ?eax .text1:10CEF4C7 FF 55 C4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?call ? ?[ebp+var_3C]2.觀察 sub_10D2BD90 這個函數,記為 (***c)10D2BD90,并減去基地址10000000,記為(***d)D2BD90
? 觀察 sub_10D2BD90 偏移地址 10CEF4A8,算出 10CEF4A9 的文件偏移,記為(***e)1E34A9
3.找到如下 IMAGE_SECTION_HEADER (緊隨 .text1 (rva _DllMain@12) 后面)
HEADER:100002F0 ? ? ? ? ? ? ? ? ? ? ? ? ; IMAGE_SECTION_HEADER HEADER:100002F0 2E 61 64 61 74 61 00 00 ? ? ? ? ? ? ? ? db '.adata',0,0 ? ? ? ? ; Name HEADER:100002F8 00 00 01 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd 10000h ? ? ? ? ? ? ? ; Virtual size HEADER:100002FC 00 70 D9 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd rva sub_10D97000 ? ? ; Virtual address HEADER:10000300 00 D0 00 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd 0D000h ? ? ? ? ? ? ? ; Size of raw data HEADER:10000304 00 F0 27 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd 27F000h ? ? ? ? ? ? ?; Pointer to raw data HEADER:10000308 00 00 00 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd 0 ? ? ? ? ? ? ? ? ? ?; Pointer to relocations HEADER:1000030C 00 00 00 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd 0 ? ? ? ? ? ? ? ? ? ?; Pointer to line numbers HEADER:10000310 00 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dw 0 ? ? ? ? ? ? ? ? ? ?; Number of relocations HEADER:10000312 00 00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dw 0 ? ? ? ? ? ? ? ? ? ?; Number of linenumbers HEADER:10000314 20 00 00 60 ? ? ? ? ? ? ? ? ? ? ? ? ? ? dd 60000020h ? ? ? ? ? ?; Characteristics
觀察 dd rva sub_10D97000 和 dd 27F000h 記為
(***f)10D97000 (***g)D97000 (***h)27F000
使用上述記錄的
(***a)DA723C ?
(***b)DA722C
(***c)10D2BD90
(***d)D2BD90
(***e)1E34A9
(***f)10D97000
(***g)D97000?
(***h)27F000
按結構
構造 0x20 長度的數據如下
記為(***x)
16進制編輯器打開原始 VA_X.dll
跳轉到文件偏移 (***h)27F000,Ctrl+B 粘貼 code.bin 的數據
跳轉到 (***h)+1E50,Ctrl+B 粘貼 (***x) 的數據
跳轉到文件偏移 (***e)1E34A9,修改4字節為 (***f)10D97000 也就是 00 70 D9 10
保存 VA_X.dll
下面是對 10.9.2366.0 的實操,基地址 1ED00000
0.找到
記為 (***a)3C B2 E8 00 ?(***b)2C B2 E8 00
1.找到
2.記為 (***c)90 FD B0 1F ? (***d) 90 FD E0 00 ?(***e) A9 F4 1E 00
3.找到
(***f) 00 B0 B7 1F (***g)00 B0 E7 00 (***h)00 B0 28 00
按結構
a b c d 01 g e h 0x2200 00
構造 0x20 長度的數據如下
記為(***x)
16進制編輯器打開原始 VA_X.dll
跳轉到文件偏移 (***h)28B000,Ctrl+B 粘貼 code.bin 的數據
跳轉到 +1E50,Ctrl+B 粘貼 (***x) 的數據
跳轉到文件偏移 (***e)1EF4A9,修改4字節為 (***f) 00 B0 B7 1F
保存 VA_X.dll
試了一下,神了~
總結
以上是生活随笔為你收集整理的手工xxoo Visual Assist X 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windbg对dll装载断点
- 下一篇: i.MX 系列CPU HAB漏洞Secu