Best Python code snippet using autotest_python
PyOS.py
Source:PyOS.py
...137 #138 # get_packed: Packs all our values, since we are not using any139 # nothing much goes on140 #141 def get_packed(self):142 packeddata = ""143 144 # NULL it out for now145 packeddata = "\x00" * 0x20c146 147 return packeddata148 149 '''150 __LDR:151 152 A LDR_DATA class for the future! and beyond!153 ''' 154 class __LDR:155 def __init__(self):156 self.Address = 0x0000000157 158 # I need to add the LDR_DATA elements159 160 #161 # get_packed: Packs all our values, since we are not using any162 # nothing much goes on163 # 164 def get_packed(self):165 packeddata = ""166 167 # NULL it out for now168 packeddata = "\x00" * 0x28169 170 return packeddata171 172 '''173 __THREAD:174 175 A THREAD class which contains our TEB and LDT. This has been176 implemented to allow access to the SEH and selectors of the177 current thread. This is not complete and simply a "good enough"178 implementation.179 '''180 class __THREAD:181 def __init__(self):182 183 # Initialize a TEB and LDT184 self.TEB = self.__TEB()185 self.LDT = self.__LDT()186 187 #188 # load_teb: Handles getting memory for the TEB and setting values189 #190 def load_teb(self, emu, address):191 self.TEB.Address = address192 193 emu.memory.allocate_page(self.TEB.Address)194 # Store our TEB in actual memory195 emu.set_memory(self.TEB.Address, self.TEB.get_packed())196 197 return True198 199 #200 # load_stack: Responsible for setting TIB stack values201 #202 def load_stack(self, emu, stackbase, stacklimit):203 # Fetch a page into cache for our stack204 emu.memory.allocate_page(stacklimit)205 206 self.TEB.TIB.StackBase = stackbase207 self.TEB.TIB.StackLimit = stacklimit208 209 return True210 211 #212 # load_exceptions: Responsible for setting TIB exception values213 #214 def load_exceptions(self, emu):215 # A generic address to get us started216 self.TEB.TIB.ExceptionList = self.TEB.TIB.StackBase - 0x24217 218 # Init a LDT entry four our TIB selector219 selector = self.LDT.get_selector(0x3b)220 selector.base = self.TEB.TIB.ExceptionList221 222 # Store the exception entry in actual memory223 emu.set_memory(self.TEB.TIB.ExceptionList, 0xffffffff)224 emu.set_memory(self.TEB.TIB.ExceptionList + 0x4, 0xdeadbeef)225 226 return True227 228 '''229 __TEB:230 231 A class to represent the TEB. The only thing we are232 currently interested in is the TIB so the rest of the TEB233 is faked234 ''' 235 class __TEB:236 def __init__(self):237 self.Address = 0x00000000238 239 # Initialize a new TIB (this is offset 0x0 in _TEB 240 self.TIB = self.__TIB()241 242 # Rest of the TEB would go here243 #244 # get_packed: Packs all our values, since we are not using any245 # besides the TIB we do that then pad the rest246 #247 def get_packed(self):248 packeddata = ""249 250 # Pack and pad251 packeddata = self.TIB.get_packed()252 packeddata += "\x00" * (0xfb6 - len(packeddata))253 254 return packeddata255 256 '''257 __TIB:258 259 A class to store the import TIB information. This includes260 our stack boundaries and seh chain261 '''262 class __TIB:263 def __init__(self):264 self.ExceptionList = 0x00000000265 self.StackBase = 0x00000000266 self.StackLimit = 0x00000000267 self.SubSystemTib = 0x00000000268 self.FiberData = 0x00000000269 self.ArbitraryUserPointer = 0x00000000270 self.Self = 0x00000000271 272 #273 # get_packed: Packs all our values, im sure there is a274 # much better way to do this.275 # 276 def get_packed(self):277 packeddata = ""278 279 packeddata = struct.pack("<L", self.ExceptionList)280 packeddata += struct.pack("<L", self.StackBase)281 packeddata += struct.pack("<L", self.StackLimit)282 packeddata += struct.pack("<L", self.SubSystemTib)283 packeddata += struct.pack("<L", self.FiberData)284 packeddata += struct.pack("<L", self.ArbitraryUserPointer)285 packeddata += struct.pack("<L", self.Self)286 287 return packeddata288 289 '''290 __EXCEPTION_RECORD:291 292 A class for handling exception records. Currently293 this is not used, but I like to type.294 '''295 class __EXCEPTION_RECORD:296 def __init__(self):297 self.Next = 0x00000000298 self.Handler = 0x00000000299 300 def get_packed(self):301 packeddata = ""302 303 packeddata = struct.pack("<L", self.Next)304 packeddata += struct.pack("<L", self.Handler)305 306 return packeddata307 308 '''309 __LDT:310 311 A local descriptor table per thread. This is to allow us to312 access the TIB selector for exception handling.313 ''' 314 class __LDT:...
ServiceCode.pys
Source:ServiceCode.pys
...19 raise Ex.MediaExpired20 title = html.xpath('//input[@name="fname"]/@value')21 if not title:22 raise Ex.MediaExpired23 page = get_packed(get_page(url))24 rt = RE_THUMB.search(page)25 rd = RE_DUR.search(page)26 thumb = rt.group(1) if rt else FALLBACK27 return VideoClipObject(28 title=title[0].strip(),29 duration=int(rd.group(1)) * 1000 if rd else None,30 thumb=Resource.ContentsOfURLWithFallback([thumb, FALLBACK]),31 source_title='Streamin'32 )33####################################################################################################34def MediaObjectsForURL(url):35 return [36 MediaObject(37 audio_channels=2,38 optimized_for_streaming=False,39 parts=[40 PartObject(key=Callback(PlayVideo, url=url))41 ]42 )43 ]44####################################################################################################45@indirect46def PlayVideo(url, **kwargs):47 r = RE_FILE.search(get_packed(get_page(url)))48 if r:49 Log.Debug(u"* PlayVideo URL = {0}".format(r.group(1)))50 return IndirectResponse(VideoClipObject, key=r.group(1))51 raise Ex.MediaNotAvailable52####################################################################################################53def get_packed(page):54 packed = RE_PACKED.search(page)55 if packed:56 page = Unpack(packed.group(1))57 return page58####################################################################################################59def get_page(url):60 try:61 page = HTTP.Request(url, cacheTime=10).content62 except:63 Log.Exception(u"* Error: Cannot open '{0}' >>>".format(url))64 raise Ex.MediaNotAvailable...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!