![]() |
||
|
*°±Åv¤¤*
¥[¤J¤é´Á: Sep 2020
¤å³¹: 7
|
ì©l½X:
¥N½X:
void Fun()
{
__asm cmp ecx, 0x4000
__asm jnz NO_Trinity
__asm push 0x1E
__asm push offset STRS_TRINITY_Tutorial
__asm lea ecx, [ebp-0x20]
caddr = 0x004040E0;
__asm call caddr
½sĶ«áÅܦ¨³o¼Ë: void Fun OP ¶}ÀY ¥N½X:
10001360 T> > \55 push ebp 10001361 . 8BEC mov ebp,esp 10001363 . 83EC 40 sub esp,0x40 10001366 . 53 push ebx 10001367 . 56 push esi 10001368 . 57 push edi 10001369 . 8D7D C0 lea edi,dword ptr ss:[ebp-0x40] 1000136C . B9 10000000 mov ecx,0x10 10001371 . B8 CCCCCCCC mov eax,0xCCCCCCCC 10001376 . F3:AB rep stos dword ptr es:[edi] 10001378 . 81F9 00400000 cmp ecx,0x4000 ; ³o¸Ì¬O ASM ¶}©l 1000137E . 0F85 B7000000 jnz Trinity.1000143B 10001384 . 6A 1E push 0x1E 10001386 . 68 80D00310 push offset Trinity.STRS_TRINITY_Tutorial 1000138B . 8D4D E0 lea ecx,dword ptr ss:[ebp-0x20] 1000138E . C705 D8F10310 E0404000 mov dword ptr ds:[caddr],0x4040E0 10001398 . FF15 D8F10310 call dword ptr ds:[caddr] §Ún½sĶ«á¶}ÀY´N¬O cmp ecx,0x4000 , ¤£n 10001360 - 10001376 ¨º¬q, ³o¼Ë¸Ó«ç»ò©w¸q fun , ¥Î void ¤£¹ï§a ? |
|||||||
|
|
|
New Member
¥[¤J¤é´Á: Apr 2017
¤å³¹: 8
|
§Ú°ÝÓ§Ú¦n©_ªº°ÝÃD¡A§A¬O¦³ bug §x¦b 1360~1376 ¶Ü¡H
¤£µM¬°¦ó¤¶·N«e±¦³¨º¨Ç code? |
||
|
|
|
Major Member
![]() ¥[¤J¤é´Á: Aug 2001
¤å³¹: 211
|
§Ú²q³o¬q code ¤£¬O쥻ªº¡A
·|¥Î asm ªº code ¦h¥b·|¬O¬°¤F³t«×©Î·Qª½±µ³B²zµwÅé¡A ¦ý³o¬q asm ·Pı¤£¥X¦³¥Î asm ªº·N¸q¦s¦b¡C ¦^¥¿ÃD¡A©Ò¥H§Ú²q§A¬O¤£·Qn function call ¨Ò¦æ©Ê³B²z¡H ¨º¦³¸Õ¹L __inline ©Î static inline ¶Ü¡H ![]()
__________________
º¡©Û·l Á¾¨ü¯q |
|
|
|
*°±Åv¤¤*
¥[¤J¤é´Á: Sep 2020
¤å³¹: 7
|
¤Þ¥Î:
³o¬O Hook ´N¬O¦b쥻exe¬Y³B¥[Ó¸õÂà. ¸õ¨ìASM¥N½X¤W±¶}©l¶], ±q__ASM ¶}©l ½sĶ«á ¥[¤W«e±¦h¥X¨Óªº¨º¬q, µ{¦¡´N¿ù»~Ãö³¬¤F .... §ï¦¨ __inline ©Î static inline ÁÙ¬O¤@¼Ë, «e±·|¦h¥X¨º¤@¬q VC++ §Ú¤~è¾Ç, ÁÙ¦b6.0¶¥¬q, ¦Ñ¹ê»¡§Ú¤]·d¤£¤ÓÀ´ ![]() ¦¹¤å³¹©ó 2021-03-23 11:07 AM ³Q ©_¤ì©Ô ½s¿è. |
|
|
|
|
Major Member
![]() ¥[¤J¤é´Á: Nov 2001
¤å³¹: 170
|
¥un§A§â code ¥]¦b function ¸Ì, ½sĶ«á´N¤@©w·|¦³ function prologue
¦pªG§An¥Î jump address ªº¤è¦¡¸õ¹L¥h°õ¦æ ´Nn¥t¥~¼g .asm ÀÉ®×¥h½sĶ, ³Ì«á¦A¥Î linker §â binary Â\¦b§Anªº address ¦¹¤å³¹©ó 2021-03-23 11:34 AM ³Q rockindy ½s¿è. |
|
|
|
Advance Member
![]() ![]() ¥[¤J¤é´Á: Feb 2003
¤å³¹: 406
|
10001360 - 10001376 ¨º¬q¬Oªºn§âcall fun()¤§«eªºª¬ºApush¨ìstack¤W±, «Ýreturnªº®ÉÔ´N¥i¥H³z¹Lpop«ì´_ª¬ºA
³o¦bC¬[ºc¬OÁפ£±¼ªº, ¥Îlinkerª½±µ¸õ¤@¯ë¤]¤£¦Eºâ¡Areturnªº®ÉÔ¤@¯ë³£n¤â°Ê±NCPU register¤â°Ê´_ì, ¤£µMµ{¦¡·|¥X°ÝÃD¡C ¦pªG¤£¤¶·NcodeÅܤj, ¥i¥H¹Á¸Õ¤£n¥Îfunction, ¦Ó¬O§â³o¨Çasm ¥Î #define ³B²z. compileªº®ÉÔ·|¦bpre-processor¶¥¬q§â#define ªº内®eª½±µ´À´«¨ìì©l½X内, ¦Ó¥B¤£¥Î«áÄò¦A¤â°Ê´_ìCPU register¡C ¤W±¦³¤j¤j´£¨ì¥Îinline keyword, ¦ý³o¨Ã¨S¦³üL¨î©Ê, n¬Ýcompiler¦³¨S¦³Ä±±o¤ñ¸ûÀu¡C«Ü¦hcompiler¦pªG¨S¦³³]¦Ü¤Ö -O3, inline¥i¯àµL§@¥Î¡CÁa¨Ï³]¤F¤]¥i¯à¨S¦³§@¥Î ¦¹¤å³¹©ó 2021-03-23 01:25 PM ³Q anomaly ½s¿è. |
|
|
|
*°±Åv¤¤*
¥[¤J¤é´Á: Sep 2020
¤å³¹: 7
|
¤Þ¥Î:
¦³¨S¦³½d¨Ò? §Ú¥un¦b ì©l½X¸Ì±²K¥[ .asmªº¤å¥ó µM«á Link function ªº addr ´N¥i¥H¤F¶Ü? ¨º.asm ªº function «ç»ò¼g ![]() ¦¹¤å³¹©ó 2021-03-23 01:23 PM ³Q ©_¤ì©Ô ½s¿è. |
|
|
|
|
Advance Member
![]() ![]() ¥[¤J¤é´Á: Feb 2003
¤å³¹: 406
|
¤Þ¥Î:
Ãþ¦ü³o¼Ë #define FUN \ { \ __asm cmp ecx, 0x4000 \ __asm jnz NO_Trinity \ __asm push 0x1E \ __asm push offset STRS_TRINITY_Tutorial \ __asm lea ecx, [ebp-0x20] \ caddr = 0x004040E0; \ __asm call caddr \ } ©I¥sªº®ÉÔ´N¥´¤@ÓFUN |
|
|
|
|
*°±Åv¤¤*
¥[¤J¤é´Á: Sep 2020
¤å³¹: 7
|
¤Þ¥Î:
³o¼Ë¼g ¦n¹³½s¤£°_¨Ó §ÚHook¬O¼g³o¼Ëªº ¥N½X:
#define Trinity_Town \
{ \
__asm cmp ecx, 0x4000 \
__asm jnz NO_Trinity \
__asm push 0x1E \
__asm push offset STRS_TRINITY_Tutorial \
__asm lea ecx, [ebp-0x20] \
caddr = 0x004040E0; \
__asm call caddr \
.....
¥N½X:
void HookMain()
{
DWORD Target_Address;
DWORD Distance;
int SIZE;
// Trinity Town ----------------------------------------------------------------
Target_Address = 0x006A7871;
SIZE = 5;
// pºâ¸õÂà¶ZÂ÷
Distance = ((DWORD)Trinity_Town - (DWORD)Target_Address - SIZE);
// ¼g¤J Patch
*(reinterpret_cast<unsigned char*>(Target_Address)) = 0xE9;
Target_Address += 1 ;
*(reinterpret_cast<int*>(Target_Address)) = Distance;
// ¤À°tŪ¼g«OÅ@
VirtualProtect((LPVOID)Target_Address, SIZE, PAGE_EXECUTE_READWRITE, &oldProtect);
(DWORD)Trinity_Town Åܦ¨¦³°ÝÃD ¦¹¤å³¹©ó 2021-03-23 02:27 PM ³Q ©_¤ì©Ô ½s¿è. |
|
|
|
|
Major Member
![]() ¥[¤J¤é´Á: Nov 2001
¤å³¹: 170
|
msvc ¥[¤J asm ¥i°Ñ¦Ò³oÓ
https://stackoverflow.com/questions...n-visual-studio msvc ¦n¹³¤£¤ä´© link address, ©Ò¥H§A¥i¯àn¥Î label ªº¤è¦¡ jump |
|
|