'Hacking' 카테고리의 다른 글
ASProtect 1.23 RC4 - 1.3.08.24 (1) | 2009.01.24 |
---|---|
Gunz Original Files (0) | 2009.01.20 |
IDA PRO beginner tutorial (0) | 2009.01.11 |
1.2.3.bmp (0) | 2009.01.10 |
Hex Calculator (0) | 2009.01.10 |
ASProtect 1.23 RC4 - 1.3.08.24 (1) | 2009.01.24 |
---|---|
Gunz Original Files (0) | 2009.01.20 |
IDA PRO beginner tutorial (0) | 2009.01.11 |
1.2.3.bmp (0) | 2009.01.10 |
Hex Calculator (0) | 2009.01.10 |
Gunz Original Files (0) | 2009.01.20 |
---|---|
Common Hacking Tools (0) | 2009.01.20 |
1.2.3.bmp (0) | 2009.01.10 |
Hex Calculator (0) | 2009.01.10 |
111 (0) | 2009.01.09 |
Common Hacking Tools (0) | 2009.01.20 |
---|---|
IDA PRO beginner tutorial (0) | 2009.01.11 |
Hex Calculator (0) | 2009.01.10 |
111 (0) | 2009.01.09 |
Tricks in preserving registers (0) | 2009.01.09 |
IDA PRO beginner tutorial (0) | 2009.01.11 |
---|---|
1.2.3.bmp (0) | 2009.01.10 |
111 (0) | 2009.01.09 |
Tricks in preserving registers (0) | 2009.01.09 |
Gunz Offset (0) | 2009.01.09 |
1.2.3.bmp (0) | 2009.01.10 |
---|---|
Hex Calculator (0) | 2009.01.10 |
Tricks in preserving registers (0) | 2009.01.09 |
Gunz Offset (0) | 2009.01.09 |
Forensic Documents (0) | 2009.01.08 |
When you are developing mixed assembler/API code, and you do not know what registers are used in the API functions, you can draw upon two pairs of assembler instructions that preserve all of the usual registers and the CPU flags as well: PUSHAD, POPAD, PUSHFD, and POPFD.
The first pair of mnemonics, PUSHAD and POPAD, save and restore the registers in a block. These mnemonics allow you to do things like display the value of a register in the middle of assembler code with a MessageBox API call.
' ...Assembler code
! PUSHAD
var& = 0
! MOV var&, EAX
MessageBox hWnd&,BYCOPY STR$(var&),"Test Value",%MB_OK
! POPAD
' ...More assembler code
It should be noted that the use of PUSHAD and POPAD in release code is less-than-optimal code design. That is, it does more work than is usually needed, but in the development stage, these two instructions can be very convenient.
If the code being tested has certain instructions, such as conditional jumps that depend on flag states within the processor, the other pair of block instructions to utilize is likely to be PUSHFD and POPFD. These preserve the state of the processor flags while code that may modify the flags is executed.
PROGRAMMING TIP: If the STD instruction is used to set the CPU direction flag, a CLD instruction must be executed before releasing control to a Windows API function or a BASIC statement.
See Also
Hex Calculator (0) | 2009.01.10 |
---|---|
111 (0) | 2009.01.09 |
Gunz Offset (0) | 2009.01.09 |
Forensic Documents (0) | 2009.01.08 |
Reverse Engineering MIT Lecture for High School Students (0) | 2009.01.08 |
#define pgame 0x006CE818
#define ZPostStageStart 0x0044B600
#define ZPostGameKill 0x004A29A0
#define ZPostWhere 0x00425A30
#define ZPostStageLeaveBattle 0x004349F0
#define ZPostStageEnterBattle 0x004A2840
#define ZPostChannelChat 0x0042AE50
#define ZPostRequestSpawn 0x004B38B0
#define ZPostSkill 0x00480660
#define ZPostShotSp 0x00479520
#define ZPostShot 0x004807B0
#define ZPostWhisper 0x0042BF30
#define ZPostShotMelee 0x004808F0
#define ZPostPeerChatIcon 0x00401680
#define ZPostStageChat 0x00418C50
#define ZPostRequestCharacterItemList 0x00434CA0
#define ZPostRequestTakeOffItem 0x0041ABA0
#define ZPostRequestBringBackAccountItem 0041FDD0
#define ZPostFriendList 0x00422600
#define ZPostRequestStagePlayerList 0x00422CF0
#define ZPostRequestChannelPlayerList 0x00422D70
#define ZPostRequestClanMemberList 0x00422E50
#define ZPostStageFollow 0x004258B0
#define ZPostFriendAdd 0x00425930
#define ZPostFriendRemove 0x004259B0
#define ZPostRequestJoinClan 0x00426180
#define ZPostRequestChangeClanGrade 0x00426260
#define ZPostRequestExpelClanMember 0x00426340
#define ZPostRequestStageJoin 0x00426B90
#define ZPostRequestPrivateStageJoin 0x00426C40
#define ZPostChatRoomChat 0x0042AA10
#define ZPostPeerChat 0x0042AC50
#define ZPostChannelChat 0x0042AE50
#define ZPostClanMsg 0x0042AF90
#define ZPostFriendMsg 0x0042BEB0
#define ZPostChatRoomJoin 0x0042C010
#define ZPostChatRoomLeave 0x0042C0C0
#define ZPostSelectChatRoom 0x0042C170
#define ZPostInviteChatRoom 0x0042C1F0
#define ZPostChangePassword 0x0042C2E0
#define ZPostAdminRequestJjang 0x0042C360
#define ZPostAdminRemoveJjang 0x0042C3E0
#define ZPostChatRoomCreate 0x0042D480
#define ZPostAdminRequestBanPlayer 0x0042D530
#define ZPostAdminRequestSwitchLadderGame 0x0042D5E0
#define ZPostAdminAnnounce 0x0042D690
#define ZPostAdminHalt 0x0042D770
#define ZPostReload 0x00433BB0
#define ZPostConnect 0x00433BD0
#define ZPostChangeWeapon 0x00434730
#define ZPostStageLeave 0x004347B0
#define ZPostRequestStageSetting 0x00434830
#define ZPostStageState 0x004348B0
#define ZPostStageLeaveBattle 0x004349F0
#define ZPostAccountCharInfo 0x00434AC0
#define ZPostRequestBuyItem 0x00434B40
#define ZPostRequestSellItem 0x00434BF0
#define ZPostRequestBringAccountItem 0x00434D20
#define ZPostRequestEquipItem 0x00434DD0
#define ZPostRequestQuickJoin 0x00434EB0
#define ZPostRequestGetCharQuestItemInfo 0x00434F90
#define ZPostRequestBuyQuestItem 0x00435010
#define ZPostRequestSellQuestItem 0x004350C0
#define ZPostRequestRecommendChannel 0x00444B10
#define ZPostChannelRequestJoinFromChannelName 0x00444B60
#define ZPostRequestAccountItemList 0x00444C60
#define ZPostStageCreate 0x0044AD30
#define ZPostStageMap 0x0044AE40
#define ZPostStageTeam 0x0044AEF0
#define ZPostDeleteMyChar 0x0044B030
#define ZPostCreateMyChar 0x0044B110
#define ZPostRequestForcedEntry 0x0044B310
#define ZPostRequestLeaveClan 0x0044B3C0
#define ZPostChannelAllPlayerList 0x0044B440
#define ZPostStageStart 0x0044B600
#define ZPostRequestCloseClan 0x0044B8C0
#define ZPostRequestShopItemList 0x00456D00
#define ZPostRequestDropSacrificeItem 0x00457B60
#define ZPostRequestCallbackSacrificeItem 0x00457C40
#define ZPostRequestQL 0x00457D20
#define ZPostRequestSacrificeSlotInfo 0x00457DA0
#define ZPostStageSetting 0x0045B930
#define ZPostQuestReadyToNewSector 0x00461750
#define ZPostShotSp 0x00479520
#define ZPostDash 0x0047EC20
#define ZPostShot 0x004807B0
#define ZPostSkill 0x00480660
#define ZPostReaction 0x00480A60
#define ZPostNPCRangeShot 0x0048CEA0
#define ZPostQuestRequestNPCDead 0x0048CFB0
#define ZPostQuestPeerNPCDead 0x0048D0F0
#define ZPostNPCSkillStart 0x004910C0
#define ZPostNPCSkillExecute 0x00491200
#define ZPostSpMotion 0x004A25F0
#define ZPostDie 0x004A26C0
#define ZPostLoadingComplete 0x004A2790
#define ZPostStageEnterBattle 0x004A2840
#define ZPostRequestPeerList 0x004A28F0
#define ZPostGameKill 0x004A29A0
#define ZPostRequestTimeSync 0x004A2A70
#define ZPostQuestRequestMovetoPortal 0x004A2AF0
#define ZPostPeerEnchantDamage 0x004AB940
#define ZPostRequestSpawn 0x004B38B0
#define ZPostRequestSpawnWorldItem 0x004B5D30
#define ZPostLocalEventOptainSpecialWorldItem 0x004BEDD0
#define ZPostRequestObtainWorldItem 0x004BF270
#define ZPostClanEmblemReady 0x004C16E0
#define ZPostChannelRequestJoin 0x004C4E80
#define ZPostStartChannelList 0x004C4F30
#define ZPostStopChannelList 0x004C4FE0
#define ZPostRequestSuicide 0x004C5060
#define ZPostRequestGameInfo 0x004C50E0
#define ZPostRequestStageList 0x004C5190
#define ZPostRequestMySimpleCharInfo 0x004C52A0
#define ZPostRequestClanInfo 0x004C5320
#define ZPostRequestEmblemURL 0x004C53D0
#define ZPostRequestCreateClan 0x004763A0
#define ZPostAnswerSponsorAgreement 0x004C8D10
#define ZPostRequestAgreedCreateClan 0x004C8E20
#define ZPostAnswerJoinAgreement 0x004C8FA0
#define ZPostRequestAgreedJoinClan 0x004C9080
#define ZPostRequestProposal 0x004CA7B0
#define ZPostReplyAgreement 0x004CAA30
#define ZPostUserOption 0x004CFE90
#define ZGame_OnPeerHPInfo 0x004A1050
#define ZApplication_GetGameClient 0x004990A0
#define ZGetGame 0x004AD0C0
#define ZGetGameTypeManager 0x004AD100
#define ZGetGameInterface 0x004ACFD0
#define ZGetGameClient 0x004ACFB0
#define ZCharacter_IsTeam 0x004769E0
#define ZCharacter_IsMoveAnimation 0x00476A10
#define ZCharacter_IsMan 0x00476A20
#define ZCharacter_Pick 0x00476A60
#define ZCharacter_GetHP 0x00476A80
#define ZCharacter_GetAP 0x00476A90
#define ZCharacter_SetHP 0x00476AA0
#define ZCharacter_SetAP 0x00476AB0
#define ZCharacter_Die 0x00476AC0
#define ZCharacter_SetDirection 0x00476AD0
#define ZCharacter_TestToggleCharacter 0x00476C40
#define ZCharacter_ChangeLowPolyModel 0x00476CD0
#define ZCharacter_IsAdminName 0x00476E30
#define ZCharacter_OnLevelDown 0x00476E50
#define ZCharacter_OnLevelUp 0x00476E60
#define ZCharacter_LevelUp 0x00476E80
#define ZCharacter_LevelDown 0x00476F00
#define ZCharacter_IsRunWall 0x00476F80
#define ZCharacter_IsAttackable 0x00477000
#define ZCharacter_ColTest 0x00477010
#define ZCharacter_IsGuard 0x00477070
#define ZCharacter_SetLastThrower 0x004771E0
#define ZCharacter_SetAnimationLower 0x004774B0
#define ZCharacter_SetAnimationUpper 0x00477570
#define ZCharacter_InitHPAP 0x00476B40
#define ZMyCharacter_InitRound 0x0047EB10
#define ZMyCharacter_InitSpawn 0x0047EB70
#define ZMyCharacter_OnDraw 0x0047EBD0
#define ZModule_HPAP_GetHP 0x00487FD0
#define ZModule_HPAP_GetAP 0x00488130
#define ZModule_HPAP_ZModule_HPAP 0x00487F90
#define ZModule_HPAP_GetID 0x00488410
#define ZModule_HPAP_SetHP 0x00488000
#define ZModule_HPAP_SetAP 0x00488160
#define ZModule_HPAP_InitStatus 0x004883E0
#define ZModule_HPAP_IsFullHP 0x00489290
#define ZModule_HPAP_IsFullAP 0x004892C0
#define ZRuleBerserker_PenaltyHealth 0x004B4AF0
#define ZRuleBerserker_BounusHealth 0x004B4990
111 (0) | 2009.01.09 |
---|---|
Tricks in preserving registers (0) | 2009.01.09 |
Forensic Documents (0) | 2009.01.08 |
Reverse Engineering MIT Lecture for High School Students (0) | 2009.01.08 |
Gunz Hacking (0) | 2009.01.06 |
Tricks in preserving registers (0) | 2009.01.09 |
---|---|
Gunz Offset (0) | 2009.01.09 |
Reverse Engineering MIT Lecture for High School Students (0) | 2009.01.08 |
Gunz Hacking (0) | 2009.01.06 |
Inject your code into PE file (0) | 2009.01.06 |
Gunz Offset (0) | 2009.01.09 |
---|---|
Forensic Documents (0) | 2009.01.08 |
Gunz Hacking (0) | 2009.01.06 |
Inject your code into PE file (0) | 2009.01.06 |
SoftICE (0) | 2009.01.06 |
Forensic Documents (0) | 2009.01.08 |
---|---|
Reverse Engineering MIT Lecture for High School Students (0) | 2009.01.08 |
Inject your code into PE file (0) | 2009.01.06 |
SoftICE (0) | 2009.01.06 |
DeFixed_Edition.zip (0) | 2009.01.06 |