[Break text title] crack UPolyX 0.51 Shell[Author] xianguo[Author mailbox] xianguo1985@163.comAuthor homepage http://hi.baidu.com/zhanglinguo11[Cracking tool] OD PEID[Cracking platform] Win32-XPsp2[Software Overview] The UPolyX 0.5 shell information on the network today found that there is very little information about the Shell cracking, And I have cracked it myself. I think I can give this shell more information![Cracking statement] is purely a personal hobby.----------------------------------
is to right-click the getwindowtexta function and select "Search for input function reference" (or press Enter) in the pop-up menu. The following dialog box is displayed:You can set both of them to a breakpoint. This program only needs to set a breakpoint in the first command. Okay. Now, the first method we mentioned above is to set a breakpoint for each reference. In this way, the two Commands will set a breakpoint. After the breakpoint is set, we go to the program we are debugging. Now we cli
1. The call and RET commands are both transfer commands, both of which modify the IP value or the Cs and IP value at the same time. They are often used in the design of subprograms. 2. the RET command uses the data in the stack to modify the IP content, so as to achieve near transfer. 3. The retf command uses the data in the stack to modify the Cs and IP content to achieve remote transfer. 4. When the CPU executes the RET command,
(1) (IP) = (SS) * 16 + (SP ))
(2) (SP) = (SP) + 2Equivalent to: w
_ alloca_probe_8. The Code is as follows:
.xlist include cruntime.inc.listextern _chkstk:near; size of a page of memory CODESEGpagepublic _alloca_probe_8_alloca_probe_16 proc ; 16 byte aligned alloca push ecx lea ecx, [esp] + 8 ; TOS before entering this function sub ecx, eax ; New TOS and ecx, (16 - 1) ; Distance from 16 bit align (align down) add eax, ecx ; Increase alloca
This article briefly introduces the inline hook and uses messageboxa for testing.
Inline hook is actually JMP for JMP. It is not difficult to understand. Before starting the code, let's talk about the implementation of the simple inline hook.
1. The hook function consists of five bytes. Five are enough to write a JMP command.
2. Before writing the
, 06000013 b90001 mov CX, 0100; 512 bytes in total0016 F2 repnz0017 A5 movsw; the main boot program moves itself from 0000: 7c00; 0000: 0600 place, for the DOS partition boot program Teng; Outbound Space0018 ea1d060000 JMP 0000: 061d; jump to 0000: 061d to continue execution, which is actually; Execute the following mov command (at the offset of 001d)001d bebe07 mov Si, 07be; 07be-0600 = 01be, 01be is the first address of the Partition Table0020 b304
, executing this function is equivalent to executing a target command.
This idea is based on the fact that CPU commands are well-regulated. The length, operation code, and operands of each command have a fixed format and can be pushed and exported based on the preceding format, therefore, you only need to use the disassembly engine to analyze the operation code, input parameters, and output parameters of the command. The rest of the work is to encode the command as the target command.
So how do
"0" written in front0.1) The purpose of this code:The purpose of this text is to explain the function of the local descriptor, its definition, initialization and jump, etc.0.2)The personal summary at the end of the article is dry, the preceding code is for reference only, and source code from Orange's implemention of a OS.0.3)Since the code in this article and the "Steps of the real mode and protected mode switching" source code has a similarity of 90%, see http://blog.csdn.net/pacosonswjtu/arti
1. Mastering machine codes for NOP, JNE, JE, JMP, CMP assembly instructionsNOP : The NOP instruction is the "null instruction". When executing to the NOP instruction, the CPU does nothing, just as an instruction to execute the past and continue executing a command behind NOP. (Machine code: 90)JNE : Conditional transfer directives, if not equal, jumps. (Machine code: 75)JE : The conditional transfer instruction, if equal, jumps. (Machine code: 74)
80483cf:ff FC pushl-0x4 (%ECX) 80483d2:55 Push%ebp 80483d3:89 e5 mov%esp,%ebp 80483d5:51 Push%ecx 80483d6:83 EC $0x4,%esp Hello_world (); 80483d9:e8 d6 FF FF FF call 80483B4 return 0; 80483de:b8 xx xx $0x0,%eax}When calling Hello_world, the assembly code corresponds to the call 80483b4 When calling printf, the assembly code corresponds to the call 80482f0 080482f0 Now let's analyze it with a debugger:GDB test(GDB) B main breakpoint 1 at 0x80483d9:file test.c, line 12. (GDB
system method; occupancy: 2w,1e. Thread number 0, highest priority.Main (); Executes user-written code, user code entry.Wret; Pseudo-return instruction, actually jump, JMP thread_wait (); and return.}Thread_wait () {///when the front-thread waits for a message to block the method. Occupation: 4W; Time: 4nsA0. PROCESS_XMUB.TBLOCKED.PRR.L = 0;Masks the current thread. System methodCompiled into: R1 = A0; R1 = + process_xmub.blocked; R1. PRR. L = 0;The
UltraISO (startup disk maker) is that because we have written the FAT32 file system information, the system can recognize that the device is a USB stick, So we can open the USB flash drive can also store other files inside without affecting the boot.
Note: There may be a large list of messages that cannot be started when restarting:
The system found unauthorized changes on the Fimware, operating system, or UEFI drivers .....
Enter the BIOS setup, the tab "boot" There is a column "Safe boot" opt
instruction description0000 FA CLI; shielded interrupt0001 33c0 XOR Ax,ax0003 8ed0 MOV ss,ax;(SS) =0000h0005 bc007c MOV sp,7c00;(SP) =7c00h0008 8bf4 MOV si,sp;(SI) =7c00h000A PUSH AX000B POP es;(es) =0000h000C PUSH AX000D 1F POP DS;(D s) =0000h000E FB STI000F FC CLD0010 BF0006 MOV di,06000013 B90001 MOV cx,0100; Total 512 bytes0016 F2 REPNZ0017 A5 movsw; the master bootloader moved itself from the 0000:7C00 to theAt 0000:0600, the boot program for the DOS partition is free; Out of space0018 ea1
) with a byte (or word) in an additional segment specified by (DI) and does not save the result, but sets the condition code according to the result. The other characteristics of the instruction are the same as those of the Movs.
V. CONTROL and TRANSFER instructions1. Unconditional Transfer Instruction. JMP (JMP) Jump instruction1) Direct short transfer within paragraphFormat:
:and Ax,001eh; 24 Valid double values15:push BX; Reserved after use16:push DX; Ditto17:mov Si,ax; AX cannot be indirectly addressable18:and cl,07h; Valid values19:call Ccodtb[si]; Suppose Cs=ds20:pop DX21:pop BX22:JMP Ccodin; The main process of the program23:CCOD00:; Code for Yards24:add sp,6; This program is a subroutine25:ret; Code is 0 execution complete26:CCOD06:; 06 for E,f27:SHL cl,1; E,f Weight Value Double28:CLFT02:; Left-pointing Horizontal2
F8 0040e8f0 01DB Add ebx,ebx 0040e8f2 jnz Short UPX.0040E8FB
we ran all the way down and found the following code two upward jumps, the following is the NOP statement, my treatment is under the NOP next line of code F4, because NOP is empty, no data. The same way we continue to F8 one-step operation. of course, there are many similar upward jumps in the program, I do not describe each, when the F8 step to run for a period of time, you may encounter such a situation Highlights: 0040e9f4 f2:ae
program is executed.So far, we've just put the clock interrupt program into the interrupt request queue, when to execute, how to execute, this is a complicated process (see chapter III), in order to let the reader have a complete understanding of the clock interrupt, we ignore the intermediate process, and give a whole description. We'll rewrite the function as follows to show the effect of the clock interrupt:Do_timer_interrupt ()/* This is a pseudo function */{Save_all/* Save the Processing m
transfer within the segment).Jle:The instruction mnemonic-(signed number comparison) is less than or equal to the transfer (equivalent to Jng). When SF and of the XOR or zf=1 are shifted (the direct short transfer within the segment).JMP: Instruction mnemonic-unconditional transfer. Unconditionally transfers to the destination address indicated by the instruction and executes from that address. The destination address can be obtained directly from th
, and it is not possible to treat any part of data as a function pointer. So the function pointer jumps over there. We press F10 step into this call command, and then press F11 to follow: 00401032 jmp Parent:: Function2 (0040BFE0) 00401037 jmp Parent::P arent (004010D0) → 0040103c jmp Child:: Function2 (00401250) 00401041 jmp
, see 103h char, change ' t ', on output, type TXT, see 1~4.
act=2Ifdef ARGIF Arg GT 2IF Arg EQ 30Act=30ENDIF
IF Arg EQ 31Act=31ENDIF
IF Arg EQ 41Act=41ENDIF
Std_=arg/10ELSEIF Arg GE 0Act=1Std_=arg
IF Arg EQ 0Act=0ENDIFENDIFENDIFENDIF
IF ACT EQ 2 is invalid%out/darg=0|1|2|30|31|41. ErrENDIF
Just macroLocal J
MOV di,es:[26] hit the key, I9 write low ASC, high scan to [1Ch tail text ++],i16 read [1Ah primer + +] to 3f function axSub di,2
CMP di,1ch not reset key area, now turn aroundJA j
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.